Creando un volcado en mysql para varias tablas. MySQLdump: descargar, trabajar con mysqldump, ejemplos. Ejemplos de uso de mysqldump

Realizar un volcado (copia de seguridad) de la base de datos es muy importante. Entonces hice algunos comentarios con ejemplos para esto. excelente utilidad como mysqldump.

mysqldump: una utilidad que le permite volcar el contenido de una base de datos o un conjunto de bases de datos para crear una copia de seguridad o enviar datos a otro servidor de base de datos SQL (no necesariamente un servidor MySQL). El volcado contendrá un conjunto de comandos SQL para crear y/o completar tablas.

mysqldump-u raíz -p -f nombre_base_datos >

Con este comando realizamos una copia de seguridad de la base de datos bajo el nombre nombre_basededatos en la unidad C en el archivo mydb_backup_name_database.txt

No es necesario crear el archivo; MySQL lo creará por sí mismo.

MySQL-u raíz -p -f nombre_base de datos< C:\mydb_backup_name_database.txt

Con este comando importamos datos de respaldo desde el archivo C:\mydb_backup_name_database.txt

Nota: -f, --force es una opción que especifica continuar incluso si se recibe un error de SQL, es decir. ignorar los errores. Por ejemplo, si ya existe una fila idéntica en la tabla.

Para evitar que se le solicite una contraseña, debe escribirla inmediatamente después de -p, es decir, sin espacios. Si la contraseña Pwd, entonces el ejemplo se vería así:

mysqldump-u raíz -p Pwd-f nombre_base_datos > C:\mydb_backup_nombre_base_datos.txt

Si usas a menudo este comando, entonces es mejor crear un usuario separado con los derechos necesarios para reducir la visibilidad de la contraseña de root

Consideremos más ajustes finos mysqldump:

--bases de datos permite que mysqldump incluya los comandos CREATE DATABASE /*!33333 IF NOT EXISTS*/ DBNAME y USE DBNAME en el script de recuperación. Esto le permitirá crear bases de datos funcionales desde cero. Es decir, sin utilizar --databases, se supone que el usuario está restaurando una única base de datos y especifica explícitamente dónde se deben colocar los datos restaurados. Si se crea una copia de seguridad con el objetivo de hacer una copia completamente funcional de los datos, por ejemplo, en otro servidor MySQL, entonces necesita usar esta clave;

--todas las bases de datos le permite hacer copias de todas las bases de datos que existen en un servidor MySQL determinado. Si necesita hacer copias de sólo algunas bases de datos, sólo necesita especificarlas separadas por un espacio al llamar a mysqldump desde línea de comando(ver arriba);

Llave --ayuda. El programa mysqldump tiene muchas versiones. Puede ver qué funciones son compatibles específicamente con su versión usando esta clave;

--add-drop-table- un modificador que obligará a mysqldump a agregar un comando para eliminar tabla al script resultante antes de crear tablas. Esto le permitirá evitar algunos errores al restaurar una base de datos desde una copia de seguridad. Por supuesto, debe tener en cuenta que las tablas ubicadas en la copia de trabajo (si existen tablas con el mismo nombre en la copia de seguridad) se eliminarán de la base de datos principal y se volverán a crear desde la copia de seguridad antes de restaurarlas desde la copia de seguridad;

--sin-datos. Con esta clave, puede hacer rápidamente una copia de la estructura de la tabla/base de datos sin los datos en sí. Por ejemplo, ha creado una tabla compleja y le gustaría guardar su estructura para el futuro, pero no necesita los datos que se encuentran en esta tabla en una copia de seguridad;

--archivo-resultado=...- este modificador se puede utilizar para redirigir la salida a un archivo. Puede utilizar la redirección normal de Unix con el comando ">", o puede utilizar esta clave. ¿A quién le gusta qué?

Otro muy consejos útiles sobre el uso de mysqldump en un entorno de hosting. Como regla general, cuando se utiliza hosting, se imponen algunas restricciones al usuario. Por ejemplo, no puedes pedir prestado más de una determinada cantidad. memoria fisica(RAM, RAM). mysqldump de forma predeterminada coloca todos los datos recibidos del servidor MySQL en la memoria y luego los escribe todos en el disco. En consecuencia, si el proveedor le permite tomar prestados, por ejemplo, 30 MB de memoria y la base de datos que está copiando con mysqldump ocupa 50 MB, por supuesto, aparecerá un error: mysqldump no podrá funcionar correctamente. y se bloqueará, de lo cual le informará. Para "forzar" a mysqldump a escribir datos directamente en el disco, en lugar de almacenarlos, aunque sea temporalmente, en la memoria, utilice la clave --rápido. Esto solucionará el problema.

Aquí hay un par de ejemplos más útiles:

mysqldump -u raíz -p Pwd-f --juego-de-caracteres-predeterminado=cp1251 NOMBREBD| gzip -c > nombre de archivo.txt .gz

Puede descomprimir dicho archivo con el comando:

nombre de archivo gunzip.txt.gz

Para saber en qué fecha se realizó la copia de seguridad, puedes escribir el siguiente comando:

mysqldump -uLOGIN -PPORT -hHOST -pPASS DBNAME | gzip -c > `fecha "+%Y-%m-%d"`.gz

y si tienes que hacer volcados con diferentes codificaciones, entonces es conveniente utilizar variables:

colocar CARÁCTER DB= utf8

colocar NOMBREBD= incumplimiento

mysqldump -u raíz -p Pwd-f --juego-de-caracteres-predeterminado=$ CARÁCTER DB $NOMBREBD| bzip2 -c > sql. $NOMBREBD.`fecha "+%Y-%m-%d"`.bz2

Si desea automatizar la eliminación de archivos antiguos, intente usar cron y el comando buscar, que generalmente se encuentra en Unix. Corriendo periódicamente

encontrar~/directorio-con-archivos -nombre "*.gz" -mtime +7 -exec rm -f () \;

Por lo tanto, eliminará archivos que tengan más de siete días.

La idea del artículo es crear una guía de alta calidad para instalar y trabajar con el programa mysqldump. Usando muchos ejemplos y recopilando todo. opciones útiles y parámetros para trabajar con esta utilidad. Es difícil incluir todo en un solo artículo, por lo que todo será breve y directo. Si alguien no entiende algo, por favor comente el artículo.

Secciones:

Instalaciónmysqldump:

¿Qué es mysqldump?

volcado de MySQL- Este aplicación de servidor, que le permite realizar una copia de seguridad (en adelante, volcado) de las bases de datos y guardarlas en archivo separado. En este caso es posible realizar configuraciones flexibles volcado: varias o todas las bases de datos, archivado gzip, agregar bloqueo, soltar comandos y mucho más. También es posible importación inversa copias de seguridad de bases de datos. Se puede hacer con usando PHP, pero esto es inaceptable para grandes proyectos, que tienen un gran peso de datos.

Este programa es muy útil para exportar e importar datos desde una base de datos. Se puede instalar de serie en su hosting (más precisamente, en el servidor mysql). Pero para perfeccionar sus habilidades para trabajar con mysqldump y aprender cómo instalarlo, puede instalarlo en denwer. Eso es lo que haremos ahora.

Descargar mysqldump

Siempre puedes descargar el programa mysqldump en nuestro sitio web, y descargar la aplicación es completamente gratuito. Descargue mysqldump desde el enlace directo a continuación.

¿Cómo instalar mysqldump?

Lo instalaremos en servidor local Denwer. Instalar la aplicación es fácil y sencillo; para ello, siga las instrucciones y capturas de pantalla que se proporcionan a continuación.

1.Copie el archivo mysqldump.exe a la carpeta Denver:

D:\WebServers\usr\local\mysql5\bin\
En este caso, es posible que tenga un nombre ligeramente diferente para la carpeta mysql5, por ejemplo mysql-5.1 o ligeramente modificado. Por ello, para mayor claridad, a continuación se muestra una captura de pantalla:

2. Inicie Denver

Seguramente usted mismo sabe cómo iniciar Denwer.


3.Inicie la consola:

Inicio->Ejecutar->cmd.exe o en Windows 7: Inicio->Buscar->Entrarcmd.exe->Ingresar, como se muestra en la captura de pantalla:

4. Pruebas:

Usando los comandos en la consola, vaya al disco virtual de Denver (tengo W:\) y a la carpeta con la aplicación mysqldump. Para confirmar la ejecución del comando, presione Enter.

Ingrese los comandos:

W:- vaya al disco virtual de Denver

CDusuario\local\mysql5\papelera– ir a la carpeta con la aplicación

mysqldump -uroot su_nombre_bd>nombre_archivo.sql– probar, volcar una base de datos arbitraria en un archivo, que se guardará en la carpeta bin.

Mi instalación fue exitosa, espero que la tuya también lo sea. En la carpeta bin encontramos el archivo de copia de seguridad de la base de datos. Para aprender a utilizar el programa de forma más amplia, lea las siguientes secciones del artículo.

Primeros pasos: exportación e importación de bases de datos

Exportación de base de datos

Ya instalamos la aplicación y aprendimos a usar la consola. Ya hemos hecho un volcado de prueba. Ahora hagamos un volcado de base de datos simple en el directorio que necesitamos. Para hacer esto, creé una base de datos utilizada anteriormente llamada "prueba". Está ubicado en el servidor local denwer. A continuación se proporcionan comandos paso a paso consola para volcar la base de datos de prueba en la carpeta y el archivo deseados.

W: cdusr\local\mysql5\bin mysqldump -uroot prueba>D:\test\easydump.sql

La siguiente captura de pantalla muestra el archivo de volcado en la carpeta de prueba:

Exportación completada exitosamente. Ahora intentemos importar este archivo nuevamente a nuestro servidor.

Importación de base de datos

Para importar la base de datos, borre la base de datos en phpmyadmin y use el siguiente comando en cmd.exe:

prueba mysql-uroot

Nota importante: si al exportar utilizamos mysqldump..., luego, al importar, debe iniciar el comando con MySQL. Este ejemplo es un uso básico de la aplicación mysqldump para crear copias de seguridad de bases de datos. Encontrará aún más comandos y ejemplos en la sección y el artículo.

Ejemplos de volcado de MySQL

A continuación se muestran los ejemplos más utilizados del uso de mysqldump. Con el que no sólo puedes hacer una copia de seguridad, sino también agregar algunos parámetros de copia de seguridad: compresión usando gzip, agregando una fecha de copia de seguridad, volcando solo unas pocas tablas o estructura de base de datos, usando configuraciones flexibles. Estas configuraciones le permiten aumentar la velocidad de ejecución del volcado y utilizar el espacio en disco con moderación.

Creando un volcado

mysqldump –uUSER -h82.82.82.82 -pPASSWORD BASE DE DATOS > /ruta/al/archivo/dump.sql

-tú o --usuario=...- nombre de usuario

-h o --host=... - anfitrión remoto(para localhost puedes omitir este parámetro)

-pag o --contraseña- solicitar una contraseña

base de datos- nombre de la base de datos exportada

/ruta/al/archivo/dump.sql- ruta y archivo para volcar

Volcamos varias bases de datos, para esto usamos el atributo --databases o –B para abreviar, mira el ejemplo a continuación:

Mysqldump -uroot -h82.82.82.82 -p -B base de datos1 base de datos2 base de datos3 > bases de datos.sql

Si desea crear un volcado de todas las bases de datos, debe usar el parámetro –all-databases o –A en forma abreviada, vea el ejemplo:

Mysqldump -uroot -h82.82.82.82 -p -A > todas-bases de datos.sql

Crear una estructura de base de datos sin datos.

Para hacer esto, necesita usar el parámetro --no-data como se muestra en el siguiente ejemplo:

Mysqldump --no-data - uUSER -pPASSWORD BASE DE DATOS > /ruta/al/archivo/schema.sql

Cree un volcado de solo una o varias tablas de base de datos

mysqldump -uUSUARIO -pCONTRASEÑA BASE DE DATOS TABLA1 TABLA2 TABLA3 > dump.sql

Cree un volcado y archívelo enzip

mysqldump -u USUARIO -pCONTRASEÑA BASE DE DATOS | gzip > /ruta/al/archivodesalida.sql.gz

Cree un volcado con la fecha en el nombre del archivo.

mysqldump -uUSUARIO -pPASSWORD BASE DE DATOS | gzip > `fecha +volcado.sql.%Y%m%d.%H%M%S.gz`

Usando atributos adicionales

mysqldump -Q -c -e -uUSER -pPASSWORD BASE DE DATOS > /ruta/al/archivo/dump.sql

Como se mencionó anteriormente, estos atributos reducen el tamaño del archivo final y aceleran el proceso de copia de seguridad. Más precisamente:

-Q envuelve los nombres entre comillas

-do hace una inserción completa, incluidos los nombres de las columnas

-mi hace una inserción extendida.

Esta utilidad le permite obtener un volcado (“instantánea”) del contenido de una base de datos o una colección de bases de datos para crear una copia de seguridad o enviar datos a otro servidor de base de datos SQL (no necesariamente un servidor MySQL). El volcado contendrá un conjunto de comandos SQL para crear y/o completar tablas.

Si respaldo se crea en el servidor, entonces, en lugar de la utilidad descrita, debe usar mysqlhotcopy. Consulte la sección 4.8.6 mysqlhotcopy, Copia de bases de datos y tablas MySQL.

Shell> base de datos mysqldump o mysqldump --bases de datos DB1 o mysqldump --todas las bases de datos

Si no especifica nombres de tablas o utiliza las opciones --databases o --all-databases, se obtendrá un volcado de toda la base de datos (respectivamente, de todas las bases de datos).

Lista de opciones admitidas por su versión específica La utilidad mysqldump se puede obtener ejecutando el comando mysqldump --help.

Tenga en cuenta que la utilidad mysqldump, utilizada sin las opciones --quick o --opt, cargará el resultado completo en la memoria antes de volcar el resultado de la búsqueda de información. Esto puede crear problemas al descargar una base de datos grande.

Tenga en cuenta que no debe utilizar las opciones --opt o -e si desea utilizarlas para obtener un volcado. nueva copia programa mysqldump y luego reprodúzcalo en un servidor MySQL muy antiguo.

La utilidad mysqldump admite las siguientes opciones:

Add-locks Agregue comandos BLOQUEAR TABLAS antes de la ejecución y DESBLOQUEAR TABLA después de la ejecución de cada volcado de tabla (para acelerar el acceso a MySQL). --add-drop-table Agregue un comando DROP TABLE antes de cada comando CREATE TABLE.-A, --all-databases Vuelca todas las bases de datos. Similar a la opción --databases, especificando todas las bases de datos. -a, --all Habilita todas las opciones de creación de objetos específicos de MySQL.--allow-keywords Permite la creación de nombres de columnas que coincidan con palabras clave. Para evitar conflictos se garantiza agregando el nombre de la tabla como prefijo al nombre de cada columna. -c, --complete-insert Uso comandos completos INSERTAR (con nombres de columnas).-C, --compress Utilice la compresión de toda la información entre el cliente y el servidor si ambos admiten la compresión. -B, --databases Vuelca múltiples bases de datos. Tenga en cuenta la diferencia de uso: en este caso no se especifican tablas. Todos los nombres de argumentos se tratan como nombres de bases de datos. USE declaración db_name; se incluye en la salida antes de cada nueva base de datos. LOCAL para permitir escrituras simultáneas para tablas MyISAM. Cabe señalar que al realizar un volcado de una colección de bases de datos, la opción --lock-tables bloquea las tablas de cada base de datos individualmente. Por lo tanto, el uso de esta opción no garantiza que las tablas sean lógicamente consistentes dentro de estas bases de datos. En diferentes bases de datos, las tablas pueden estar en estados completamente diferentes cuando se realiza un volcado. -K, --disable-keys Agrega la expresión /*!40000 ALTER TABLE tb_name DISABLE KEYS */; y /*!40000 ALTER TABLE tb_name HABILITAR TECLAS */; en la salida del resultado. Esto acelerará la carga de datos a servidor mysql 4.0, ya que los índices se crean después de que se hayan ingresado todos los datos.-n, --no-create-db En la salida, la expresión CREATE DATABASE /*!32312 IF NOT EXISTS*/ db_name; faltará. esta linea se agregará de todos modos cuando se utilicen las opciones --databases o --all-databases. -t, --no-create-info No registra información de creación de tablas (comando CREATE TABLE).-d, --no-data No escribe información de las filas de la tabla. ¡Esto es muy útil para volcar la estructura de la tabla! --opt Igual que --quick --add-drop-table --add-locks --extended-insert --lock-tables . Debería proporcionar el volcado más rápido para leer en un servidor MySQL.+ retorno de carro). --single-transaction Esta opción emite un comando BEGIN SQL antes de realizar un volcado de datos desde el servidor. Se utiliza con mayor frecuencia con tablas InnoDB y el nivel de aislamiento de transacciones READ_COMMITTED, ya que es en este modo donde puede volcar el estado consistente de la base de datos después de ejecutar el comando BEGIN sin bloquear ninguna aplicación. Al utilizar esta opción, debe recordar que al realizar un volcado, solo las tablas transaccionales estarán en un estado consistente, es decir. Algunas tablas MyISAM o HEAP aún pueden cambiar su estado cuando se usa esta opción. La opción --single-transaction se agregó en la versión 4.0.2. Es mutuamente excluyente con la opción --lock-tables porque el comando LOCK TABLES aborta la transacción anterior.-S /ruta/al/socket, --socket=/ruta/al/socket Archivo de socket para conectarse al host local (host predeterminado). --tables Anula la opción --databases (-B).-T, --tab=ruta-a-algún-directorio para cada tabla dada crea un archivo `table_name.sql" que contiene los comandos SQL CREATE para crear la tabla, y un archivo `table_name.txt" que contiene los datos de la tabla. El archivo `.txt' tiene el formato de acuerdo con las opciones --fields-xxx y --lines--xxx. Nota sobre el trabajo del programa.

-V, --version Imprime la información de la versión y sale del programa.

-w, --where="dónde-condición" Vuelca solo los registros seleccionados. Tenga en cuenta que se requieren comillas.

"--where=user="jimf"" "-wuserid>1" "-wuserid -X, --xml Representa un volcado de base de datos como XML. -x, --first-slave Bloquea todas las tablas en todas las bases de datos. -O net_buffer_length=#, donde # El uso más común de la utilidad mysqldump es realizar copias de seguridad de todas las bases de datos. Consulte la sección 4.4.1 Copias de seguridad de bases de datos mysqldump --opt base de datos > backup-file.sql.

base de datos mysql

MySQL -e base de datos "fuente /patch-to-backup/backup-file.sql"

Esta utilidad se utiliza a menudo para transferir información desde una base de datos a otro servidor MySQL:

Mysqldump --opt base de datos | mysql --host=host-remoto -C base de datos

Es muy posible volcar varias bases de datos con un solo comando:




Mapa del sitio