
Un pequeño truco que aprendí en mis recientes andanzas, penas y desconsuelos con los servidores, es que subir una base de datos a un nuevo servidor es la cosa más sencilla del mundo… si tiene menos de 2 megas de tamaño, pero cuando esto no es así, las cosas comienzan a ponerse color de hormiga.
La base de datos de tecnoculto, depurada de tablas que no vienen al caso, tiene cerca de 40 megas sin comprimir (SQL). Por lo tanto, los métodos habituales de importación son imposibles.
La vez pasada que me cambié de servidor, como no tenía la menor idea, simplemente fui copiando y pegando texto en el cuadro de SQL de PHPMyAdmin, con lo cual el proceso me llevó unas 4 horas, aproximadamente. OJO: Si van a utilizar este método, copien los trozos de texto hasta un punto y coma. Siempre debe haber un “;” al final del texto que pegan en el cuadro de SQL de PHPMyAdmin, ¿eh? Si no, les va a devolver errores. Y tal punto y coma, por supuesto, debe corresponder al final de una línea de la base de datos, Ooobviamente.
Bueno, pero antes de subir la base de datos hay que bajarla del antiguo servidor, ¿no?
He aquí un pequeño tutorial:
Paso número 1:
Loguéense en su base de datos mediante PHPMyAdmin y opriman el botón de arriba que dice “Export” o “Exportar”
Paso número 2:
Elijan del cuadro pertinente las tablas que deseen exportar (por defecto vienen señaladas todas y si no saben de qué se trata, déjenlo así). Y asegúrense de que la casilla de SQL se encuentra marcada
Paso número 3:
En SQL Options (Opciones), asegúrense de que lo siguiente (y nada más) se encuentra seleccionado (pongo el texto en inglés y en español):
-
Structure (Estructura)
-
Add DROP TABLE (Añada DROP TABLE)
-
Add AUTO_INCREMENT value (Añadir el valor AUTO_INCREMENT)
-
Enclose table and filed names with Backquotes (Usar “backquotes” con tablas y nombres de campo)
-
Data (Datos)
-
Complete INSERTS (Completar los INSERTS)
-
Use hexadecimal for binary fields (Use hexadecimal para BLOB)
Activen el cuadro de “Save as file” o “Enviar (genera un archivo descargable)” en español y elijan si quieren descargar la tabla con compresión o sin compresión.
Dénle click a “Go” (“Continuar” en español) y bajen el archivo al disco duro de su computadora.
Bigdump
Descarguen el programa Bigdump de esta dirección
Descompriman Bigdump y ábranlo con el bloc de notas. Busquen las opciones que siguen:
$db_server = ”; Entre las comillas (son comillas simples) hay que poner el nombre del servidor de la base de datos (la nueva)
$db_name = ”; El nombre de la base de datos
$db_username = ”; El nombre del usuario
$db_password = ”; El password del usuario
$filename = ”; Este es el nombre del archivo de su base de datos vieja (la que acaban de descargar (y descomprimir, en su caso). No olviden poner la extensión “.sql” al final.
IMPORTANTE:
Un poco más abajo, busquen esta opción:
$db_connection_charset = ”; pongan utf8 entre las comillas, o su blog tendrá signos extraños en palabras acentuadas, las que tienen ñ, ¿, ¡ y cosas por el estilo
Salven el archivo y ciérrenlo
Upload
Suban bigdump.php y el archivo de la base de datos al mismo directorio en su nuevo blog
Final
Dirijan su navegador (Firefox, IE, Opera o lo que usen) hacia el archivo bigdump.
Ejemplo:
Escribir en la barra de direcciones (si subieron ambos archivos a la carpeta “blog”):
http://www.ejemplo.com/blog/bigdump.php
Denle click a Start Import
¡Listo! Verán cómo bigdump hace su trabajo en unos cuantos minutos. Tiene un cuadro de diálogo que marca el progreso e indica el trabajo restante en varias formas.
A veces parece “atorarse”, pero no se desesperen. Puede haber un lapso de inactividad de 2 ó 3 minutos. No interrumpan el proceso a menos que supere los 10 minutos, por ejemplo. No sé por qué sucede esto, pero en mi caso bigdump se detuvo cuando le faltaba sólo el 2% y estuvo casi inmóvil por casi 4 minutos.
MUY IMPORTANTE: Después de la importación exitosa (pueden repetir el proceso si no funcionó la primera vez) deben borrar tanto el archivo bigdump.php como la base de datos que subieron, pues contiene información confidencial sobre su base de datos y alguien podría hacer mal uso de ella.
Ojalá sea de utilidad para alguien.









{ 2 trackbacks }
{ 25 comments }
interesante entrada; un truco que sin duda puede venir muy bien en alguna ocasión.
Charros. en mis comienzos. estos temas eran totalmente desconocidos. ahora que lo leo, me doy cuenta que alguien que no se dedica a la developeada ya lo puede hacer…. OJO. tiene que ser autodidacta y emprendedor. por asi decirlo. llevo ya unos meses chequeando este blog y jamas….leanlo bien jamas le habian posteado algo relacionado con terminal PHP, ni MYSQL. me doy cuenta que este Andres, es una celebridad en mi vida, en realidad me sorprendes. Gran parte de mis dias es programar visitar oppensource, fourge, y mis librerias. si me gustaria que sigas post about php mysql. es lo mejor de los mejores LAMP, es la neta GRACIAS por tu post desde MEXICO D.F
Hola amigo, comento para agradecerte, no sabes por cuanto tiempo batalle para subir enormes bases de datos teniendo muhos errores en tiempos de espera, recortar bases de datos, todo un proceso largo y tedioso se resuelve con este simple archivo.
Excelente!
Yamilskate :
Nada qué agradecer. Me alegra que te haya sido de utilidad.
necesito ayuda urgente, mi disco duro en el cual tenia mi base de datos se daño, trate de salvarlo pero no se pudo, asi que decidi extraer los datos con un programa asi que solo obtuve los archivos de mi base de datos, pero ahora que ya heche a andar de nuevo el servidor con un disco duro nuevo no encuentro como aplicar los archivos para que mi base de datos vuelva a funcionar como antes, tengo toda la carpeta en donde estaba instalado sql server, que se encuentra en c:\archivos de programas\microsoft sql server\data, estoy pidiendo ayuda para resolver este frustante problema, si me pudieran ayudar les agradeceria un 1000
Estimado. Con mysqlFront puede sincronizar, exportar e importar bases y tablas de gran tamaño sin problemas. Nosotros trabajamos en nuestra base con màs de 30 gbs de info y se encuentra constantemente en producciòn con cientos de usuarios online al mismo tiempo. Para ello programamos en algùn lenguaje, puede php o asp, en loop controlado, queries que van descargando tablas registro por registro a una tasa de copia que manejamos en los paràmetros del query y del refresh, De esta manera tenemos varias copias de nuestras bases en los servidores de producciòn y otras en los servidores experimentales, donde innovamos para que la performance de la base sea eficiente y estable. Saludos. Diego.
Gran herramienta amigo, de verdad que un lujazo subir las bds con esta herramienta.
Gracias por el manual y por el php, un saludo.
JoseLuis:
De nada, y qué bueno que te fue de utilidad.
Saludos
Hola Amigo,
Tengo el siguiente problema, necesito trasladar mi base de datos de motor mysql tal cual como esta hacia SQL Server, es posible?
Germán:
Sí, es posible, pero honestamente no conozco el procedimiento bien ni nunca lo he realizado, así que no me atrevería a aconsejarte. Una disculpa
Quiero agradecerte por este post tan util
Agrego algo importante: me aparecia un mensaje cuando llevaba 12%, que decia “Wrong Page or unavailable”, se detenia ahi y en la BD creaba 15 tablas las 3 veces, revisando las tablas note que eran de imagenes, parece que tiene problemas con lineas super largas, las borre y puse en la variable $linespersession = 500; en lugar de 3000, funciono bien asi.
Saludos
jon:
En efecto, el script tiene problemas con líneas demasiado largas no separadas por un “;”. Eso lo descubrí después, pero olvidé agregarlo al post, ya que la mayor parte de la gente no tiene problemas de ese tipo, aunque se supone que debería trabajar bien con 3000 líneas.
40 Mb? Mysql puede subir bases de datos mucho mas grandes sin ningún problema y sin necesidad de un intermediario, yo he subido tablas de 100 MB a 7 GB sin ningún problema y el tiento ronda entre 20 Seg a 5 Min, la forma de realizarlo desde una terminal es con la siguiente sintaxis.
mysql -u usuario -p contraseña nombre_tabla < /ruta_archivo/archivo.sql;
Espero que les sea de utilidad.
Nota: posiblemente al intentar realizar consultas o subir tablas muy grandes, mysql retorne algún error, pero esto se puede solucionar modificando algunos parámetros en el archivo de configuración (como lo es el tamaño de las consultas, cache, etc.)
José Daniel:
Muchas gracias, claro que es de enorme utilidad, aunque como bien lo mencionas, se requiere meterse a la terminal y no todos sabemos cómo hacerlo. Je, je. Pero el método que pones se ve realmente sencillo.
Gracias nuevamente, y saludos!
Hola…en una terminal…??
en un hosting ??
Como se hace eso ??
Slds
Hola, me ha sido muy util su explicacion de como subir una base de datos MySql al servidor de forma simple y eficaz. De verdad mil gracias, creo que sin su ayuda no lo hubiese conseguido. Te deseo un feliz dia.
Roberto Rodriguez:
Me da mucho gusto que la entrada haya sido de utilidad para ti. La verdad que es la solución más sencilla que encontré
hola al ver los comentarios veo que les funciono pero ami no me funciona nose si podras ayudarme ahi te dejo mi correo, de todas formas gracias luisvt_61@hotmail.com
LASR:
Normalmente los servidores dedicados o virtuales dedicados te dan la posibilidad de modificar tu instalación de linux mediante comandos SSH. Si se trata de un hosting compartido, no hay posibilidad de ello, pero para realizar el procedimiento básico no se requiere tal cosa.
Excelente!!!… Fenomenal!!!… estaba haciendo gusto lo que dices, copiando y pegando texto… Y ME CANSE…!!!
En menos de 2 minutos pude subir mi base de datos C O M P L E T I T A…. de 88 Mb… EL BIGDUMP, ya esta guardado bajo siete llaves.
Un abrazo a la distancia desde Perú…
ya cuando mude de servidor, y uso wordpress, me fui a herrmaientas>exportar
y cree un archivo xhtml donde vienen todo y por lo general son mas ligeros que una copia total del sql y muy efectivos, claro esto en el sistema wordpress
También MySqlAdministrator es una buena utilidad para subir grandes BD, lo que pasa es que no todos los hostings lo admiten
Gracias por el Script, hace tiempo que lo estaba buscando
saludos
muy bueno.
quizás un apunte. parece que se hace la picha un lío con más de 300 saltos de línea, o ‘inserts’ seguidos. así que se pueden dividir en varios ‘insert’ la consulta cuando son más de 300…
Perfecto, muchisimas gracias por el truco. Yo acabo de actualizar mi página de lujo.
Comments on this entry are closed.