Qué anda caliente:
Últimos comentarios:
Muebles de Oficina: Muebles de Oficina
La Bitacora del... Lantean iOS: Lantean iOS
La Bitacora del Capitan
... Muebles de Oficina: Muebles de Oficina
La Bitacora del... Lantean: Lantean
La Bitacora del Capitan
»... Tecnicel: Hola, Estoy buscando el truco... Emily: Andrini: pasame una dirección de... Muebles de Oficina: Muebles de Oficina
La Bitacora del... gabriel: Gente esto es largo y... Mariel: hola a todos. aun sigo... Lantean Thoughts: Lantean Thoughts
La Bitacora del Capitan
... graciela andrini: Es mejor seguir con la... graciela andrini: Emily: serÃas tan amable de... Mariel: Hola, soy Mariel, tengo 37... iOS Engineering Blog: iOS Engineering Blog
La Bitacora del... ruben: vayan a un neurocirujano,,,,,,,,no queda...
|
Los de siempre:
Categorías:
Recomendados
Archivos:
Otros:
Identificarse
Registrarse
Meta:
RSS 2.0
RSS 2.0 de los comentarios
Inválido!
|
|
|
5/3/2007
Mysqldump version fix
|
Arrancamos la semana con un poco de cuestiones técnicas.
Para quiénes están en el mundo LAMP, o simplemente están en contacto -por ejemplo para administrar- un mysql, va este pequeño tip, muy útil al momento de hacer mudanzas de servidores en los cuáles difiere la versión del mysql.
El comando
El problema aparece cuando utilizamos el comando “mysqldump” de una versión más nueva del servidor, digamos alguna de las serie 4, y pretendemos hacer el restore en una serie 3. ¿el resultado? errores.
¿porqué?
Porque lógicamente las versiones más nuevas del mysql tienen más funcionalidades y características, habitualmente no soportadas por las versiones anteriores (por ejemplo comando “union”, timestamps on update/on delete, default charset, etc.) que, al ser interpretadas al momento del restore, generan error.
El comando “–compatible”
La respuesta viene de la mano del mismo comando mysqldump, con un switch no documentado llamado “–compatible” (noten doble slash adelante) disponible a partir de la versión 4.0, que permite generar un código de salida compatible con determinados servidores.
Así entonces si quisiera generar código compatible con la versión 3.23, y en un ejemplo muy sencillo, diría:
mysqldump -uroot -p –opt databasename –compatible=mysql323 > dumpfilename
Y así como tengo disponible mysql323, tenemos:
- ansi
- mysql323
- mysql40
- postgresql
- oracle
- mssql
- db2
- maxdb
- no_key_options
- no_table_options
- no_field_options
El código generado entonces apunta al servidor “destino-compatible”, aunque por ejemplo en los casos de oracle y sql server no se garantiza que se trasladen las funcionalidades avanzadas ni todas las características de las tablas.
Conclusión
Considerando que no está documentado, y que de a poco los servidores Mysql se iran actualizando a nuevas versiones, es importante tener a mano este comando. No digas que no te avisé
|
Por
Ignacio
a las
3:03 am
|
|
|
10 Comentarios
»
Trackback URL
|
La verdad que hace una semana atrás me hubiera venido fabuloso. Pero de todas formas nunca es tarde para saberlo. Muchas gracias por el dato!
Publicado por WalteR Funk — 5/3/2007 @ 9:04 am
|
|
Es un tip de mucha importancia como para no estar documentado!. Me ha tocado pasar de MySQL5 a MySQL4 y mas de un dolor de cabeza padeci.
Publicado por Adrian Ramiro — 5/3/2007 @ 10:02 am
|
|
Muy bueno Nacho.
Digo, ¿no te queda por ahi uno sobre optimización de my en máquinas pedorras, tipo con 160 - 256 Mb RAM?
Tengo las tarlipes al plato buscando donde expliquen en detalle que significa cada linea del archivo de configuración de my. Y hasta la ayuda de my es desastrosa en este sentido.
Publicado por Javier Salinas — 5/3/2007 @ 11:32 am
|
|
Walter: lamento llegar tarde
Adrián: totalmente de acuerdo! mirá que revisé todo mysql.com e incluso la ayuda propia del mysql y no hay nada.
Javier: gracias, teoricamente mysql deberÃa funcionar perfecto en una máquina con esa memoria, incluso con menos, utilizando una correcta configuración de “query-caching” e Ãndices. Te recomiendo la lectura de este blog que tratan muy bien y muy seguido de estos temas.
Publicado por Ignacio — 5/3/2007 @ 4:49 pm
|
|
jejeje, claro, “deberÃa” funcionar perfecto, pero, la realidad a veces tiene esas cosas raras que se hacen difÃciles de entender, sobre todo cuando la fuente para entenderlo es algo, como decir, escasa.
Te agradezco el link y me pongo a leer a ver si puedo bajar un poco el consumo de memoria de un my que se volvió loco.
Publicado por Javier Salinas — 6/3/2007 @ 7:38 am
|
|
Y qué hay de “man mysqldump”? No es acaso ese el primer lugar en el que hay que buscar?
“This option does not guarantee compatibility with other servers. It only enables those SQL mode values that are currently available for making dump output more compatible.”
Publicado por Juan — 12/3/2007 @ 9:41 am
|
|
(Perdón por el comentario doble)
Otra cosa que queria aclarar es que si la intención es pasar de MySQL a otro servidor SQL lo que hay que utilizar son las herramientas propias de import/export de cada servidor y no esperar que mysql lo haga todo.
Saludos
Publicado por Juan — 12/3/2007 @ 9:44 am
|
|
Juan, debo ser yo, porque lo probé en cinco servidores distintos, e incluso en linuxmanpages.com y man.he.net y en ningún lado encuentro que hable del “–compatible”
Publicado por Ignacio — 12/3/2007 @ 10:24 am
|
|
Quizás no está en el MANPATH, como es en mi caso porque MySQL está instalado bajo otro prefix.
Pero posta que existe, al menos a partir de la versión 5.0.24a… incluso probando en otro server con la versión 4.1.21 tambien funcó.
Fijate en $prefix/share/man/man1/mysqldump.1
Igual, el artÃculo es una joyita. Me parece una iniciativa genial que la gente pueda leer documentación en nuestra lengua.
Saludos.
Publicado por Juan — 14/3/2007 @ 12:22 am
|
|
[…] Según este Wordpress, estoy escribiendo el post N° 300, descontando los borradores destrozados por la ira de ver un engendro impublicable. Asi que para festejar, nada mejor que publicar un hallazgo que no digo que me solucionó la vida, pero si que me está siendo útil y por eso lo comparto. Hace unos días, Ignacio, publicó una función no documentada del mysqldump. Y yo andaba buscando documentación sobre como optimizar MySQL, obviamente, por culpa de un servidor viejito, lento y con poca memoria. De haber tenido un dual core con 2 Gb de RAM esto no hubiera ocurrido Pero, como estamos en Argentina, esa que calcula que solo el 30 % de las PCs que se vendan este año podrá soportar Windows Bosta, agarramos el alambre dulce, la cinta aisladora, la gotita y el MySQL Performance Tuning Primer Script. Que es un script muy interesante, ya que no solo nos da una idea de como está funcionando nuestro my, sino que además se atreve a darnos algunas recomendaciones para modificar la configuración. Justamente, esto era lo que andaba buscando, ya que muy poca gente publica recomendaciones, aunque mas no fuera iniciales, para luego ir retocando. La mayoría te tira “esta es mi configuración en un PIV 3 Ghz con 1 Gb RAM” y te dice que va bien. ¿Va bien?, claro que va bien, para mantener un foro con 500 visitas diarias, con ese cacharro a mi también me andaría como una Ferrari. Bue, dejo de llorar y muestro su funcionamiento. Para eso, nada mejor que algunas de las informaciones que tira: — MYSQL PERFORMANCE TUNING PRIMER – - By: Matthew Montgomery - […]
Publicado por Cada loco con su blog, no? » Blog Archive » MySQL tunning — 23/6/2007 @ 3:10 am
|
Leave a Reply
|
Powered by WordPress
|
 |
 |