MySql导出没有数据的模式

我正在使用一个Java程序的MySql数据库,现在我想把程序交给其他人。

如何导出MySql数据库结构没有数据在它,只是结构?

489494 次浏览

是的,你可以使用mysqldump--no-data选项:

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

您可以在mysqldump命令中使用--no-data选项

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

你可以使用MYSQL管理员工具是免费的 # EYZ0 < / p >

你会发现许多选项导出你的MYSQL数据库

您可以在mysqldump命令下使用-d选项

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

您还可以使用--no-data选项提取单个表

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

获取单个表的创建脚本:
-选择所有的表(shift键)
-只需右键单击表名,然后单击Copy to Clipboard > Create Statement

如果您正在使用IntelliJ,您可以启用数据库视图(视图->工具窗口->数据库)

在该视图中连接到数据库。然后您可以右键单击数据库并选择“复制DDL”。其他ide可能提供类似的功能。

IntelliJ DDL

您可以采用以下方法

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

希望对你有所帮助

不使用输出的转储。

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

不过要注意,no-data选项将不包括视图定义。如果你有这样的观点

create view v1
select `a`.`id` AS `id`,
`a`.`created_date` AS `created_date`
from t1;

使用——no-data选项,视图定义将更改为following

create view v1
select 1 AS `id`, 1 AS `created_date`

如果你想从所有数据库中转储所有的表,没有数据(只有数据库和表结构),你可以使用:

mysqldump -P port -h hostname_or_ip -u username -p --no-data --all-databases > db_backup.sql
这将产生一个。sql文件,您可以加载到mysql服务器上,以创建一个新的数据库。 在生产环境中,这种用例并不多,但我每周都会这样做,以重置链接到演示网站的服务器,所以无论用户在一周中做什么,在周日晚上,一切都将回滚到“new”:

> mysqldump——no-data——例程——事件测试> dump-defs.sql

添加——routines和——events选项,以包括存储的例程和事件定义

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

使用mysql-backup4j,只需几行代码就可以很容易地备份任何数据库。这将为数据库生成SQL转储,稍后可以轻松地使用该转储恢复数据库。

为此需要的Maven依赖项是:

 <dependency>
<groupId>com.smattme</groupId>
<artifactId>mysql-backup4j</artifactId>
<version>1.0.1</version>
</dependency>

下面是在java中实现的..你可以使用很酷的参数集

/**
* Creator : Tanvir Chowdhury
* Date    : 2021-11-15
*/
public class BackupDatabase {
public static void main(String[] args) throws Exception {


Properties properties = new Properties();
properties.setProperty(MysqlExportService.DB_NAME, "hcs_test_db");
properties.setProperty(MysqlExportService.DB_USERNAME, "root");
properties.setProperty(MysqlExportService.DB_PASSWORD, "root");
properties.setProperty(MysqlExportService.DELETE_EXISTING_DATA, "true");
properties.setProperty(MysqlExportService.DROP_TABLES, "true");
properties.setProperty(MysqlExportService.ADD_IF_NOT_EXISTS, "true");
properties.setProperty(MysqlExportService.JDBC_DRIVER_NAME, "com.mysql.cj.jdbc.Driver");
properties.setProperty(MysqlExportService.JDBC_CONNECTION_STRING, "jdbc:mysql://localhost:3306/hcs_test_db");


properties.setProperty(MysqlExportService.TEMP_DIR, new File("/Users/tanvir/Desktop/backups/backup.sql").toString());
properties.setProperty(MysqlExportService.PRESERVE_GENERATED_ZIP, "true");


MysqlExportService mysqlExportService = new MysqlExportService(properties);
mysqlExportService.export();


}
}

如果需要,您还可以使用邮件发送选项,很容易将备份文件发送到任何电子邮件地址。

或者你可以在mysqldump命令中使用——no-data选项。如果你想在java中执行此操作,那么将此命令作为参数传递给runtime exec()方法。

mysqldump -u root -h localhost --no-data -proot hcs_db_one?useSSL=false > db_one_dump.sql

从phpmyadmin你可以做以下事情:

  1. 出口
  2. 导出方法:自定义显示所有可能的选项
  3. 格式特定的选项:结构结构和数据

导出整个数据库。

enter image description here