Buscar..


Sintaxis

  • mysqldump -u [nombre de usuario] -p [contraseña] [otras opciones] db_name> dumpFileName.sql /// Para respaldar una base de datos única
  • mysqldump -u [nombre de usuario] -p [contraseña] [otras opciones] db_name [tbl_name1 tbl_name2 tbl_name2 ...]> dumpFileName.sql /// Para respaldar una o más tablas
  • mysqldump -u [nombre de usuario] -p [contraseña] [otras opciones] --databases db_name1 db_name2 db_name3 ...> dumpFileName.sql /// Para hacer una copia de seguridad de una o más bases de datos completas
  • mysqldump -u [nombre de usuario] -p [contraseña] [otras opciones] --todos-bases de datos> dumpFileName.sql /// Para respaldar todo el servidor MySQL

Parámetros

Opción Efecto
- # Opciones de inicio de sesión del servidor
-h ( --host ) Host (dirección IP o nombre de host) para conectarse. El valor predeterminado es localhost ( 127.0.0.1 ) Ejemplo: -h localhost
-u ( --user ) Usuario de MySQL
-p ( --password ) Contraseña MySQL. Importante : Al usar -p , no debe haber un espacio entre la opción y la contraseña. Ejemplo: -pMyPassword
- # Opciones de volcado
--add-drop-database Agregue una instrucción DROP DATABASE antes de cada instrucción CREATE DATABASE . Útil si quieres reemplazar bases de datos en el servidor.
--add-drop-table Agregue una instrucción DROP TABLE antes de cada instrucción CREATE TABLE . Útil si quieres reemplazar tablas en el servidor.
--no-create-db Suprimir las CREATE DATABASE en el volcado. Esto es útil cuando está seguro de que las bases de datos que está volcando ya existen en el servidor donde cargará el volcado.
-t ( --no-create-info ) Suprimir todas las declaraciones CREATE TABLE en el volcado. Esto es útil cuando desea volcar solo los datos de las tablas y usará el archivo de volcado para rellenar tablas idénticas en otra base de datos / servidor.
-d ( --no-data ) No escriba información de la tabla. Esto solo volcará las CREATE TABLE . Útil para crear bases de datos de "plantillas"
-R ( --routines ) Incluir procedimientos / funciones almacenados en el volcado.
-K ( --disable-keys ) Desactive las claves para cada tabla antes de insertar los datos y habilite las claves después de insertar los datos. Esto acelera las inserciones solo en tablas MyISAM con índices no únicos.

Observaciones

La salida de una operación mysqldump es un archivo ligeramente comentado que contiene sentencias de SQL secuenciales que son compatibles con la versión de las utilidades de MySQL que se usaron para generarlo (con atención prestada a la compatibilidad con versiones anteriores, pero sin garantía para las futuras). Por lo tanto, la restauración de una base de datos mysqldump ed comprende la ejecución de esas declaraciones. En general, este archivo

  • DROP es la primera tabla o vista especificada
  • CREATE esa tabla o vista
  • Para tablas volcadas con datos (es decir, sin la --no-data )
    • LOCK la mesa
    • INSERT s todas las filas de la tabla original en una declaración
  • UNLOCK TABLES
  • Repite lo anterior para todas las demás tablas y vistas.
  • DROP s la primera rutina incluida
  • CREATE s esa rutina
  • Repite lo mismo para todas las demás rutinas.

La presencia del DROP antes de CREATE para cada tabla significa que si el esquema está presente, ya sea que esté vacío o no, el uso de un archivo mysqldump para su restauración completará o sobrescribirá los datos que contiene.

Creación de una copia de seguridad de una base de datos o tabla

Crear una instantánea de una base de datos completa:

mysqldump [options] db_name > filename.sql

Crea una instantánea de múltiples bases de datos:

mysqldump [options] --databases db_name1 db_name2 ... > filename.sql
mysqldump [options] --all-databases > filename.sql

Cree una instantánea de una o más tablas:

mysqldump [options] db_name table_name... > filename.sql

Cree una instantánea excluyendo una o más tablas:

mysqldump [options] db_name --ignore-table=tbl1 --ignore-table=tbl2 ... > filename.sql

La extensión de archivo .sql es totalmente una cuestión de estilo. Cualquier extensión funcionaría.

Especificando nombre de usuario y contraseña

> mysqldump -u username -p [other options]
Enter password:

Si necesita especificar la contraseña en la línea de comando (por ejemplo, en un script), puede agregarla después de la opción -p sin un espacio:

> mysqldump -u username -ppassword [other options]

Si la contraseña contiene espacios o caracteres especiales, recuerde utilizar el escape en función de su shell / sistema.

Opcionalmente la forma extendida es:

> mysqldump --user=username --password=password [other options]

(La Explicidad que especifica la contraseña en la línea de comandos no es Recomendada debido a problemas de seguridad).

Restaurar una copia de seguridad de una base de datos o tabla

mysql [options] db_name < filename.sql

Tenga en cuenta que:

  • db_name debe ser una base de datos existente;
  • su usuario autenticado tiene privilegios suficientes para ejecutar todos los comandos dentro de su filename.sql ;
  • La extensión de archivo .sql es totalmente una cuestión de estilo. Cualquier extensión funcionaría.
  • No puede especificar un nombre de tabla para cargar, aunque podría especificar uno para volcar desde. Esto debe hacerse dentro de filename.sql .

Alternativamente, cuando esté en la herramienta de línea de comandos de MySQL , puede restaurar (o ejecutar cualquier otro script) usando el comando de origen:

source filename.sql

o

\. filename.sql

mysqldump desde un servidor remoto con compresión

Con el fin de utilizar la compresión sobre el alambre para una transferencia más rápida, pasar el --compress opción de mysqldump . Ejemplo:

mysqldump -h db.example.com -u username -p --compress dbname > dbname.sql

Importante: si no desea bloquear la base de datos de origen , también debe incluir --lock-tables=false . Pero puede que no obtengas una imagen de db internamente consistente de esa manera.

Para guardar también el archivo comprimido, puede canalizar a gzip .

mysqldump -h db.example.com -u username -p --compress dbname | gzip --stdout > dbname.sql.gz

restaura un archivo mysqldump comprimido sin descomprimir

gunzip -c dbname.sql.gz | mysql dbname -u username -p

Nota: -c significa salida de escritura a la salida estándar.

Copia de seguridad directa a Amazon S3 con compresión

Si desea realizar una copia de seguridad completa de una gran instalación de MySql y no tiene suficiente almacenamiento local, puede volcarla y comprimirla directamente en un depósito de Amazon S3. También es una buena práctica hacer esto sin tener la contraseña DB como parte del comando:

mysqldump -u root -p --host=localhost --opt --skip-lock-tables --single-transaction \
        --verbose --hex-blob --routines --triggers --all-databases |
    gzip -9 | s3cmd put - s3://s3-bucket/db-server-name.sql.gz

Se le solicitará la contraseña, después de lo cual se iniciará la copia de seguridad.

Transferencia de datos de un servidor MySQL a otro

Si necesita copiar una base de datos de un servidor a otro, tiene dos opciones:

Opción 1:

  1. Almacena el archivo de volcado en el servidor de origen
  2. Copie el archivo de volcado a su servidor de destino
  3. Cargue el archivo de volcado en su servidor de destino

En el servidor de origen:

mysqldump [options] > dump.sql

En el servidor de destino, copie el archivo de volcado y ejecute:

mysql [options] < dump.sql

Opcion 2:

Si el servidor de destino puede conectarse al servidor host, puede usar una canalización para copiar la base de datos de un servidor a otro:

En el servidor de destino

mysqldump [options to connect to the source server] | mysql [options]

Del mismo modo, el script podría ejecutarse en el servidor de origen, empujando hacia el destino. En cualquier caso, es probable que sea significativamente más rápido que la Opción 1.

Base de datos de copia de seguridad con procedimientos almacenados y funciones

De manera predeterminada, los procedimientos y funciones almacenados o no generados por mysqldump , deberá agregar el parámetro --routines (o -R ):

mysqldump -u username -p -R db_name > dump.sql

Al utilizar --routines las --routines creación y cambio no se mantienen, en su lugar, debe volcar y volver a cargar el contenido de mysql.proc .



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow