使用 Mysqldump 导出 MySQL 数据库
本教程将教授如何使用 mysqldump
实用程序导出 MySQL 数据库。
我们将看到使用 mysqldump
的语法、它的参数以及使用它的原因。我们还将通过带/不带数据的备份以及导出表和数据库来练习此实用程序。
对于本指南,我们使用 MySQL 版本 8.0.27。你可以从此处获得最新版本(如果有)。
使用 mysqldump
导出/备份 MySQL 数据库
在这个时代,DATA 就是一切。这就是为什么数据库管理员让我们的数据安全且 24/7 可用的原因;有一些必要的和意外的情况,他们必须导出数据(数据丢失或数据故障)。
请记住,备份的方法因不同的数据库平台而异。在这里,我们将了解 MySQL 数据库的命令行实用程序 mysqldump
。
使用 mysqldump
实用程序的原因
- 主要原因是在需要时备份数据库。
- 你可以导出数据库结构(没有数据的数据库)。
- 它还允许你一次备份单个/许多/所有数据库。
mysqldump
还允许你备份特定数据库中的特定表。- 它非常容易用于导出有/没有数据的数据库。
- 它有各种参数,我们可以根据需要调整以完成工作。
使用 mysqldump
实用程序的参数
我们将为本教程中使用的命令使用一些参数。 -u [username]
和 -p [password]
用于提供连接 MySQL 数据库的用户名和密码。建议你稍后在询问时输入密码,而不是在 -p
之后输入密码(参见下面给出的示例)。
然后 [option]
出现在你可以指定你的需求的地方。例如,你希望使用 --no-data
选项进行无数据备份。
之后,需要 [数据库名称]
。如果你想从数据库中导出某个表,你可以在 [database name]
之后写 [table name]
。
接下来,你可以根据需要使用 >
(大于)符号导出到文件或使用 <
(小于)符号进行恢复。你可以在这里了解 mysqldump
的许多其他参数。
仅备份数据库结构
你可能会发现某些情况下你只想导出数据库结构。然后,你可以使用带有 --no-data
选项的 mysqldump
命令。
以下命令将导出 person
数据库结构。
mysqldump -u root -p --no-data person > E:\Backup\person_database_structure.sql
从数据库备份单个/多个表
有时,需要从特定数据库中导出特定表。在这种情况下,mysqldump
允许你从该数据库备份单个或多个表。
你必须在数据库名称后写表名才能导出单个表。数据库名后可以写多个表名,导出多张表。
# export one table named customer from database named person
mysqldump -u root -p person customer > E:\Backup\customer_table_from_person.sql
# export two tables named customer and employee from database named person
mysqldump -u root -p person customer employee > E:\Backup\customer_employee_from_person.sql
备份单个/多个/所有数据库
如果你专注于备份所有数据库而不是只备份一个会怎样?你可以通过 --all-database
选项以下列方式使用 mysqldump
。
mysqldump -u root -p --all-databases > E:\Backup\all_databases_backup.sql
如果你只想导出一个或多个数据库,可以按以下方式在 --databases
选项后写入数据库名称,并用一个空格分隔。
mysqldump -u root -p --databases person courses > E:\Backup\person_courses_backup.sql
使用以下命令导出一个数据库。
mysqldump -u root -p person > E:\Backup\person_backup.sql
结论
我们详细了解了 mysqldump
命令行实用程序。我们讨论了它的参数以及使用它的原因。我们还学习了如何使用不同的参数导出带有/不带有数据的单个或多个表和数据库。