Se pueden copiar los ficheros .frm
,
.MYI
, y .MYD
para
tablas MyISAM
entre diferentes arquitecturas
siempre que soporten el mismo formato de punto flotante. (MySQL
se encarga del problema de intercambio de bytes
-byte-swapping-). Consulte
Sección 14.1, “El motor de almacenamiento MyISAM
”.
En casos en que se necesite transferir bases de datos entre diferentes arquitecturas, se puede emplear mysqldump para crear un fichero conteniendo sentencias SQL. Luego puede transferirse al otro ordenador y suministrarlo al cliente mysql.
mysqldump --help permite ver las opciones disponibles. Si se están transportando los datos hacia una versión de MySQL más nueva, se debería usar mysqldump --opt, para aprovechar las optimizaciones que resultan en un fichero de volcado más pequeño y más rápido de procesar.
La forma más fácil (aunque no la más rápida) de mover una base de datos entre dos ordenadores es ejecutar los siguientes comandos en el ordenador donde se encuentra la base de datos:
shell> mysqladmin -h 'otro_ordenador
' createnombre_bd
shell> mysqldump --optnombre_bd
| mysql -h 'otro_ordenador
'nombre_bd
Si se desea copiar una base de datos desde un ordenador remoto a través de una red lenta, se puede utilizar:
shell> mysqladmin createnombre_bd
shell> mysqldump -h 'otro_ordenador
' --opt --compressnombre_bd
| mysqlnombre_bd
También se puede almacenar el resultado en un fichero, luego transferirlo al ordenador de destino, y cargar el fichero en la base de datos. Por ejemplo, para volcar una base de datos hacia un fichero en el ordenador de origen:
shell> mysqldump --quicknombre_bd
| gzip >nombre_bd.contenidos
.gz
(El fichero creado en este ejemplo está comprimido). Se debe transferir hacia el ordenador de destino el fichero con el contenido de la base de datos y ejecutar estos comandos allí:
shell> mysqladmin createnombre_bd
shell> gunzip <nombre_bd.contenidos
.gz | mysqlnombre_bd
También se puede emplear mysqldump y
mysqlimport para transferir la base de datos.
Para tablas grandes, esto será mucho más rápido que
simplemente utilizar mysqldump. En los
siguientes comandos, DUMPDIR
representa la
ruta completa al directorio donde se depositará la salida de
mysqldump.
En primer lugar, crear el directorio para los ficheros de salida y volcar la base de datos:
shell> mkdir DUMPDIR
shell> mysqldump --tab=DUMPDIR nombre_bd
Luego, transferir los ficheros desde el directorio
DUMPDIR
hacia el directorio correspondiente
en el ordenador de destino, y allí cargar los ficheros en
MySQL:
shell> mysqladmin createnombre_bd
# crea la base de datos shell> cat DUMPDIR/*.sql | mysqlnombre_bd
# crea las tablas en la base de datos shell> mysqlimportnombre_bd
DUMPDIR/*.txt # carga los datos en las tablas
Además, no hay que olvidar copiar la base de datos
mysql
, porque es la que contiene las tablas
de permisos. Posiblemente, los comandos en el ordenador de
destino se deban ejecutar como usuario root
de MySQL hasta que la base de datos mysql
esté en su lugar.
Luego de importar la base de datos mysql
en
el ordenador de destino, ejecutar mysqladmin
flush-privileges para que el servidor vuelva a cargar
la información de la tabla de permisos.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.