Esquema de exportación MySql sin datos


492

Estoy usando una base de datos MySql con un programa Java, ahora quiero dar el programa a otra persona.

¿Cómo exportar la estructura de la base de datos MySql sin los datos, solo la estructura?

Respuestas:


963

Puedes hacerlo con la --no-dataopción con el comando mysqldump

mysqldump -u root -p --no-data dbname > schema.sql

11
En mi humilde opinión, mysqldumpes la mejor respuesta. El Administrador de MySQL está abandonado y MySQL Workbench todavía tiene muchos errores.
Álvaro González

49
También considere usar la --single-transactionopción si no quiere o no puede hacer bloqueos de tabla.
Jim

47
-d es --no-data para abreviar.
marstone

36
También considere agregar --rutinas si su base de datos tiene procedimientos / funciones almacenados
crafterm

15
Por defecto, esto no incluye el CREATE DATABASEcomando. Para incluir, reemplace dbnamecon --databases dbname(abreviatura:) -B dbname. Luego, para importar en otro servidor, usemysql -u root -p < schema.sql
Sean

88

Sí, puedes usar mysqldumpcon la --no-dataopción:

mysqldump -u user -h localhost --no-data -p database > database.sql

44
Me sorprende que esta no sea la respuesta aceptada a pesar de haber sido publicada diez segundos antes y ser más completa si no es idéntica a la respuesta aceptada.
user5532169

1
@ zypA13510, aparentemente diez segundos pueden ser una diferencia de 749 votos a favor.
emallove

17

También puede extraer una tabla individual con la --no-dataopción

mysqldump -u user -h localhost --no-data -p database tablename > table.sql

6

Puede usar la opción -d con el comando mysqldump

mysqldump -u root -p -d databasename > database.sql

6

Dumping sin usar la salida.

mysqldump --no-data <database name> --result-file=schema.sql

4

Sin embargo, tenga en cuenta que la opción --no-data no incluirá la definición de vista. Entonces, si tenía una vista como la siguiente, cree la vista v1, seleccione a. idAS id, a. created_dateAS created_date de t1; con la opción --no-data, la definición de vista cambiará a la siguiente vista de creación v1 seleccione 1 AS id, 1 AScreated_date



2

En caso de que esté utilizando IntelliJ, puede habilitar la vista Base de datos (Ver -> Ventana Herramientas -> Base de datos)

Dentro de esa vista, conéctese a su base de datos. Luego puede hacer clic derecho en la base de datos y seleccionar "Copiar DDL". Otros IDEs pueden ofrecer una función similar.

IntelliJ DDL


2
Lo intenté, no contiene ningún desencadenante (y Dios sabe qué más no)
phil294

2

Si desea volcar todas las tablas de todas las bases de datos y sin datos (solo bases de datos y estructuras de tablas) puede usar:

mysqldump -P port -h hostname_or_ip -u username -p --no-data --all-databases > db_backup.sql

Esto producirá un archivo .sql que puede cargar en un servidor mysql para crear una nueva base de datos. Los casos de uso para esto no son muchos en un entorno de producción, pero lo hago semanalmente para restablecer los servidores que están vinculados a sitios web de demostración, por lo que, independientemente de lo que hagan los usuarios durante la semana, los domingos por la noche, todo vuelve a "nuevo": )


1

Para obtener el script de creación de una tabla individual:
- seleccione toda la tabla (con la tecla Mayús)
- simplemente haga clic derecho en el nombre de la tabla y haga clic en Copiar al portapapeles> Crear declaración.


0

shell> mysqldump --no-data --routines --events test> dump-defs.sql


1
Bienvenido a StackOverflow. Podría dar una gran respuesta a esto si proporciona un poco más de información y restricciones.
Janhoo

0

Agregue las opciones --rutinas y --eventos para incluir también la rutina almacenada y las definiciones de eventos

mysqldump -u <user> -p --no-data --routines --events test > dump-defs.sql

-1

Puedes tomar usando el siguiente método

mysqldump -d <database name> > <filename.sql> // -d : without data

Espero que te ayude


66
Esta respuesta no agrega nada que otra respuesta aún no haya dicho.
Daniel
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.