Réplica de BBDD en local MySQL al servidor
4 seguidores
Hola,
alguien sabe cual es la forma mas rapida de subir una base de datos MySQL con la que trabajas en local al servidor?
Es decir hacer una replica exacta de local al servidor. Tal y como lo hago ahora es generando un archivo SQL y ejecutandolo al servidor. El problema es que genera un archico muy grande y tarda mucho.
alguna idea? alguien ha tenido un problema similar?
he ledo que mysqldump puede tener problemas si la bbdd es muy grande.
gracias
sole
El problema de ejecutar via phpmyadmin es que como supere el tiempo maximo de ejecucion de un script php (suele ser 30 segundos) te quedas con la importacion a la mitad.
Si tienes acceso ssh al servidor, sube el fichero sql a un sitio temporal, y haz un <code>mysql --user=tuusuario --password nombre_base_datos < archivo.sql</code>
entonces te preguntara el password, lo pones y hale, a esperar ;)
clkwise
jajaja me explique mal :) (lo de las tablas era en plan afirmacion :p)
a lo que me referia era si los 70 Mb eran el archivo sql (vease con sus inserts.....) o la base de datos a pelo (con sus tablitas y sus registros... )
a mi el archivo de texto me ocupa 45 Mb pero la BBDD unos 10.
creo q el modulo de python tarda mas en ejecutarlo y subir los datos que como lo haces tu asi que voy a ver como lo soluciono.
gracias
sole
Que preguntas mas raras que haces... por supuesto que era la base de datos con las tablas!!
Que mas puede haber en una base de datos, aparte de tablas? :D
Con phpmyadmin genere y me baje un archivo SQL con los datos de mi base de datos, es decir, los create tables y los insert into para poder reconstruir la base de datos.
En generarlo y bajarlo, pues tardo un poquito, y lo mismo para subirlo y ejecutarlo de nuevo, claro. No se, echale 5 minutos para bajarlo y 3 minutos para insertar ese dump en un servidor.
clkwise
70 Mb la base de datos desde phpmyadmin, con sus tablas... no? es decir no generaste archivo q ocupase 70 megas no?
te acuerdas q tardo aprox?
sole
Yo lo tuve que exportar con phpmyadmin desde el servidor pq si no perdia los autoincrement si hacia mysqldump en el servidor.
Ocupaba unos 70mb.
Si no quieres hacerlo asi puedes atreverte a copiar los ficheros de mysql a mano pero eso es la solucion de emergencia y no es nada recomendable. Aparte de que normalmente no se suele tener acceso a ese directorio :D
Una solucion para acelerar, si tienes innodb activado y usas foreign keys, es desactivar el checking the foreign keys durante la importacion. Esto suele acelerarlo.
clkwise
Sole, tu lo hiciste con mysqldump? cuanto ocupaba la bbdd? q te tardo en subir?
el archivo con todos los inserts y demas me ocupa 45 MB aprox. y lo lanzo desde una aplicacion en python que ejecuta consulta a consulta. Esto va bastante lentito. y queria optimizarlo.
hay alguna forma que no sea ejecutando uno a uno los inserts? sobre todo teniendo la bbdd en local ya creada y llenita de datos frescos.:P
sole
mysqldump no da problemas si la base es muy grande; de hecho es mas rapido que phpmyadmin ya que no tiene que pasar a traves de php+apache.
El problema con mysqldump es que con determinadas versiones del cliente de mysql (la 4.noseque) se "come" los autoincrement de las tablas, asi que hay que ir con cuidado, porque parecera que "esta bien hecho" pero realmente a la proxima vez que vas a anyadir algun dato te llevas un disgusto :(
(mas disgusto en cuanto hay mas tablas, la muerte!).
Te lo dice una que tuvo que hacer un export de una base de datos con mas de 100 tablas la semana pasada... uff...
dagi3d
si tienes muchos datos te va a dar lo mismo pasarlo a un txt que a un fichero sql ya que al final, el txt será traducido en sentencias sql, así que no ganarás nada.
lo que si podrías hacer es optimizar la cantidad de datos que vas a copiar en caso de que sea un proceso que haces regularmente y es añadiendo un campo con formato de fecha a los registros y hacer un volcado exclusivamente de los datos que tengan una fecha superior a cuando hiciste el último volcado
script
Exportando en ".txt". Es muy rápido y factible...
nunca falla.
Supongo que sabras el proceso pero por si acaso:
Desde phpmyadmin de tu localhost, en el directorio principal hay un menu>exportar>"selecciona la tabla correspondiente">continuar.
Copias el texto que te genera en un bloc de notas y lo guardas.
Luego te vas a tu servidor y en el phpmyadmin le das a importar, justo debajo del comando exportar ya utilizado, seleccionas el archivo txt que guardaste y punto.xDD
Un saludo.