mysql 如何只导出数据结构

MySQL 命令行工具 mysqldump 用于创建数据库的备份副本(或转储),包括结构或模式以及数据本身。有许多命令行标志可以让 MySQL 仅转储数据或结构而不是所有内容。这篇文章着眼于如何只转储整个 MySQL 数据库的模式、单个表或多个表。

为所有没有数据的表转储数据库结构

添加 -d 标志以表示输出中不应包含任何数据,其中“mydatabase”是要转储的数据库的名称,“someuser”是用于连接到数据库的登录名。以下命令将转储指定 MySQL 数据库中所有表的表结构:

mysqldump -d -u someuser -p mydatabase

-d 标志表示不在转储中包含数据。或者,如果您觉得更容易记住,也可以使用 –no-data 代替:

mysqldump --no-data -u someuser -p mydatabase

-u 标志指示用户名,-p 标志指示将提供密码。按 <enter> 后,系统会提示您输入密码。

或者,可以在命令行上提供密码,但 -p 标志和密码之间不能有空格。例如,如果密码是“apples”,请执行以下操作:

mysqldump --no-data -u someuser -papples mydatabase

为一个没有数据的表转储数据库结构

转储单个表的数据是一样的,使用与上述相同的语法,但将要转储的表添加到命令的末尾。要转储名为“products”的表的结构,请执行以下操作:

mysqldump -d -u someuser -p mydatabase products

为几个没有数据的表转储数据库结构

这与一个表相同,但只需在数据库名称后指定您想要转储的其他表数。此命令将转储表“products”、“categories”和“users”的结构:

mysqldump -d -u someuser -p mydatabase products categories users

将结构转储到文件

上面的所有示例命令都会将转储写入标准输出,这意味着它们会向上滚动您的终端/命令提示符窗口,这可能不是很有用。要将其保存到文件而不是重定向输出。例如:

mysqldump -d -u someuser -p mydatabase > mydatabase.sql

您可以将此文件的内容与“mysql”命令行工具一起使用,以在另一个数据库中创建相同的表:

mysql -u someuser -p anotherdatabase < mydatabase.sql

mysql 如何只导出数据结构
标签: