Foros del Web » Programando para Internet » PHP »

Importar bases de datos

Estas en el tema de Importar bases de datos en el foro de PHP en Foros del Web. Hola! Como puedo importar mis bases de datos MySql en internet? Me explico... tengo mi hosting que me da MySql y tiene el PhpMyAmind 2.2.1 ...
  #1 (permalink)  
Antiguo 01/01/2002, 21:46
 
Fecha de Ingreso: abril-2001
Mensajes: 59
Antigüedad: 23 años, 6 meses
Puntos: 0
Importar bases de datos

Hola!
Como puedo importar mis bases de datos MySql en internet?
Me explico... tengo mi hosting que me da MySql y tiene el PhpMyAmind 2.2.1 y ahi esta una base de datos de un foro (que ellos me dieron) que se llama samue_xbm1 y dentro de esa base hay 16 tablas (de los foros) entonces quiero sacar esa base de datos (samue_xmb1) a mi disco duro con todas las tablas... ¿Como le hago?

Saludos!

<p><a href="http://www.samue.com.mx">
<img border="0" src="http://www.samue.com.mx/firma.gif" width="320" height="25"></a></p>
  #2 (permalink)  
Antiguo 02/01/2002, 04:31
 
Fecha de Ingreso: julio-2001
Mensajes: 278
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: Importar bases de datos

Yo hice una página me ayuda a hacer eso, muestra en una página toda la sintaxis SQL, selecciono todo, copio y pego en nuevo archivo para despues ejecutarlo asi:

mysql&gt;\. miarchivo.sql

Te paso el código por correo.

<font face="Bimini,Tahoma,Arila">Andrés García[/CODE]

oooO
( )
*(
**)
  #3 (permalink)  
Antiguo 02/01/2002, 04:38
 
Fecha de Ingreso: julio-2001
Mensajes: 278
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: Importar bases de datos

Bueno la pongo aquí:
<pre>
&lt;html&gt;
&lt;body&gt;
&lt;?
function crea_tablas($tablas)
{
$espacio = &quot;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp ;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp ;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp ;nbsp;&amp;nbsp;&amp;nbsp;&quot;;
$sql = &quot;&quot;;
for($i=0;$tablas[$i];$i++)
{
$desc = mysql_query(&quot;DESC $tablas[$i]&quot;);
$campos[$i] = &quot;&quot;;
for($j=0;$res1 = mysql_fetch_row($desc);$j++)
{
$ncampo[$j] = $res1[0];
$tipo[$j] = $res1[1];
if($res1[2]!=&quot;YES&quot;)
$nulo[$j] = &quot;NOT NULL&quot;;
if($res1[4])
$xdefecto[$j] = &quot;Default '$res1[4]'&quot;;
$extra[$j] = $res1[5];
if($res1[3]==&quot;PRI&quot;)
$llave[$i] = &quot;PRIMARY KEY($ncampo[$j])&quot;;
$campos[$i] = $campos[$i].$espacio;
$campos[$i] = $campos[$i].&quot;$ncampo[$j] $tipo[$j] $nulo[$j] $xdefecto[$j], &quot;;
}
$sql = $sql.&quot;CREATE TABLE $tablas[$i]($campos[$i]$espacio$llave[$i]$espacio);&lt;br&gt;&quot;;
}
return $sql;
}

function inserta_registros($tablas)
{
$sql = &quot;&quot;;
for($i=0;$tablas[$i];$i++)
{
$ins[$i] = &quot;&quot;;
$sel = mysql_query(&quot;SELECT * FROM $tablas[$i]&quot;);
for($j=0;$res1 = mysql_fetch_row($sel);$j++)
{
$val[$i] = &quot;&quot;;
for($k=0;$k&lt;mysql_num_fields($sel);$k++)
{
$val[$i] = $val[$i].&quot;'$res1[$k]'&quot;;
if($k&lt;(mysql_num_fields($sel)-1))
$val[$i] = &quot;$val[$i], &quot;;
}
$ins[$i] = $ins[$i].&quot;INSERT INTO $tablas[$i]() VALUES($val[$i]);&lt;br&gt;&quot;;
}
$sql = $sql.$ins[$i];
}
return $sql;
}
?&gt;
&lt;html&gt;
&lt;body&gt;
&lt;?
$conn = mysql_connect(&quot;localhost&quot;,&quot;root&quo t;); //AQUI CONECTATE COMO DE COSTUMBRE
$base = mysql_select_db(&quot;samue_xbm1&quot;);
$q = mysql_query(&quot;SHOW TABLES&quot;);
for($i=0;$res = mysql_fetch_row($q);$i++)
$lista_tablas[$i] = $res[0]; //GENERAMOS UN ARREGLO DE LAS TABLAS EXISTENTES

echo crea_tablas($lista_tablas); //FUNCION QUE GENERA CADENA DEL FORMATO DE LAS TABLAS
echo inserta_registros($lista_tablas); //FUNCION QUE GENERA CADENA CON LAS SENTENCIAS DE INSERCIÓN DE DATOS

mysql_close($conn);
?&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>

<font face="Bimini,Tahoma,Arila">Andrés García[/CODE]

oooO
( )
*(
**)
  #4 (permalink)  
Antiguo 15/01/2002, 01:08
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 23 años, 3 meses
Puntos: 9
Re: Importar bases de datos

oye, una pregunta, que nombre le pongo, el que quiera?

<div align="center"><a href="http://www.ladodos.com" target="_blank"><img src="http://www.ladodos.com/imagenes/ldanim.gif" border="0" width="200" height="37" alt="http://www.ladodos.com"></a></div>
  #5 (permalink)  
Antiguo 15/01/2002, 08:21
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 23 años
Puntos: 69
Re: Importar bases de datos

Muchachos, no se gasten. El phpMyAdmin hace AÑOS que trae la opción de hacer un DUMP de la base de datos a un archivo.sql

Tan solo tienen que cargar el phpMyAdmin, entrar haciendo click en el nombre de una de las bases de datos, y verán un poco más abajo de la descripción de las tablas, una opción que dice

&quot;Ver volcado esquema de la base de datos&quot;

Alli eligen que bases quieren, si con los datos o no, si lo quieren en pantalla o en un archivo, y listo, tienen el volcado hecho.

Luego, Si quieren volver a levantar los datos, no tienen que utilizar la linea de comandos, sino que en el mismo phpMyAdmin tienen la opcion de subir un archivo.sql y ejecutar todo el codigo dentro de él.

saludos.

<hr><font size=2 face="verdana">- Pablo Daniel Rigazzi (Webstudio)
<font size=1 color="#333333">COORDINADOR PROYECTO REGIONALIZACION ARGENTINA
Visita <a href="http://www.web-studio.com.ar" target="_blank">Web Studio</a> - Tutoriales Photoshop</fo
  #6 (permalink)  
Antiguo 15/01/2002, 12:47
 
Fecha de Ingreso: enero-2002
Ubicación: Dentro del corralón
Mensajes: 287
Antigüedad: 22 años, 10 meses
Puntos: 0
Re: Importar bases de datos

Es mas, dentro del volcado tenés un checkbox que dice &quot;enviar&quot; y te permite guardar en tu disco todo el dump (Por lo menos en la versión 2.2.2 que yo uso).
Saludos.

Leonardo D'Angelo
Buenos Aires
Argentina
  #7 (permalink)  
Antiguo 19/10/2004, 09:55
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 21 años, 3 meses
Puntos: 105
Holas, tiene razon Webstudio, pero si tenes que cargar una tabla o base de datos con mas de 30 MB de informacion?, pues lo hize esto a mi data y al final corto la comunicacion parace que no hace el max_execution_time a 0 o algo asi, pues se supera el tiempo de ejecucion, aunque no creo, ademas deje esto a mas de una hora y al final de corto, porque?, o es mucha data para el MySQL y tendria que cambiar a otro tipo de Base de Datos, SQLServer?.

Saludos
Gildus
__________________
.: Gildus :.
  #8 (permalink)  
Antiguo 19/10/2004, 10:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
gildus

La transferencia de datos no depende de Mysql por ende no debes cambiar de BD por esa razón.

Mysql dispone del comando mysqldump (usa el buscador del foro . .hay várias soluciones al tema). Ese comando (que se ejecuta en la Shell "línea de comandos") es mucho más rápido para ejecutar una generación de "SQL" de tu BD que hacerlo por médio de PHP integro. Eso mismo plantea algunos problemas .. sobre todo si usas PHP configurado como "safe_mode" (a ON) (modo seguro).

Un saludo,
  #9 (permalink)  
Antiguo 20/10/2004, 11:06
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 21 años, 3 meses
Puntos: 105
Hola Cluster, tienes razon, pero a lo que me referia es que casi todos los proveedores de Hosting, no te dan acceso al mysqldump que seria ejecutarlo con el system() en linux, ademas yo estoy en un proveedor de hosting y no tengo acceso a esos servicios.

Por eso me referia a eso, pues se me corta la transferencia, debido al exceso de tiempo en ejecucion, que creo q son no mas de 30, a ese punto el phpMyAdmin no se si lo hace, segun revise el codigo. pero ahora creo q cambiaron de version y no se si alli lo hacen pero la verdad es que quiero bajar a .sql mis datas y se cuelga, entonces sera del mismo modo groso para subir?.

Creo que sera mejor implementar uno mismo, hay unos buenos expuestos en el foro.

Gracias amigos

Saludos
Gildus
__________________
.: Gildus :.
  #10 (permalink)  
Antiguo 20/10/2004, 11:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Vas a tener el mismo problema si lo implementas tu por tus médios .. al final vas a "repetir" lo que hace phpMyadmin ..

Lo bueno que si lo implementas tu o subes tu própio phpMyadmin a tu sitio controlado por tí es que podrás usar:

set_time_limit() para ajustar el tiempo de ejecución del script a lo que necesites (siempre y cuando tu servidor no esté en modo seguro "safe_mode" .. por qué si es así tampoco podrás usar esa función . .así que volveras al mismo problema).

Un saludo,
  #11 (permalink)  
Antiguo 20/10/2004, 11:30
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 21 años, 4 meses
Puntos: 0
ok

Ok yo para hacer un dump de mi base de datos del sitio de mi pagina web hago lo siguiente.. (bueno esto funciona dentro de mi server de intranet linux mandrake, osea yo tengo el control de todo el servidor como root y me permite ejecutar este codigo, dentro un hosting compartido no sé como será, a menos de que tengas un cpanel y puedas hacer el bakcup)

creo un archivo llamado respaldo_bp.php dentro de el...

Código PHP:
//fijo el date de hoy
$date_month date('m');
$date_year date('Y');
$date_day date('d');
$Date "$date_year-$date_month-$date_day";

//Archivo
$filename "Mi_base_$Date.sql";

//Datos BD
$usuario "usuario";
$passwd "miclave";
$bd "Mi_base";

//forzo al navegador a guardar el archivo
header("Pragma: no-cache");
header("Expires: 0");
header("Content-Transfer-Encoding: binary");
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=$filename");

// Utilización del script para windows o unix. Activar las lineas depende de cada caso

//windows
//$executa = "c:\mysql\bin\mysqldump.exe -u $usuario --password=$passwd --opt $bd";
//system($executa, $resultado);

//para Unix
$executa "mysqldump -u $usuario --password=$passwd --opt $bd";
system($executa$resultado);


if (
$resultado) { echo "<H1>Error ejecutando comando: $executa</H1>\n"; } 
Como mi server utiliza unix pues habilito la linea de unix quitándole el comentario.

Como resultado de la ejecución de este archivo el te va a mostrar el cuadro de diálogo de guardar como.

Lo que me gustaría hacer luego es aplicarle algún tipo de compresión antes de salvarlo para hacer la transferencia más rapido..

espero que les sirva
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.

Última edición por andinistas; 20/10/2004 a las 11:32
  #12 (permalink)  
Antiguo 20/10/2004, 11:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
El problema que planteaba gildus es que si usas un servidor configurado como "safe_mode" (modo seguro) por ejemplo .. ya no puedes ejecutar las funciones como system() y afines.

Pero, si... si puedes usar mysqldum() de Mysql vía PHP .. es de lo más rápido para generar el ".sql" de tu BD completa, por lo menos más rápido que hacerlo vía PHP integramente.

Un saludo,
  #13 (permalink)  
Antiguo 21/10/2004, 15:09
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 21 años, 3 meses
Puntos: 105
Gracias Cluster.
Seguire tus consejos.

Un saludazo
Gildus
__________________
.: Gildus :.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:12.