MySQL备份:使用mysqldump工具备份
简介:在本教程中,您将学习如何使用mysqldump工具在MySQL Server中进行一个或多个数据库的备份。
mysqldump工具介绍
mysqldump工具允许您通过生成一个文本文件来备份一个或多个数据库,该文本文件包含可以从头开始重新创建数据库的SQL语句。
mysqldump工具位于MySQL安装目录的root / bin目录中。
要访问mysqldump工具,请导航到root / bin文件夹,并使用带有以下选项的mysqldump命令。
以下是常见的mysqldump选项:
add-drop-table
为数据库中的每个表包括一个DROP TABLE语句。
add-locks
在每个INSERT语句之前和之后包括LOCK TABLES和UNLOCK TABLES语句。
它提高了转储文件中的数据恢复速度。
all-databases
在MySQL服务器上创建所有数据库的转储。
create-options
在每个表的CREATE TABLE语句中包括ENGINE和CHARSET选项。
databases
创建一个或多个数据库的转储。
disable-keys
指示MySQL在MyISAM表的数据加载期间禁用索引更新。
在mysqldump完成加载数据后,MySQL将创建索引。
此选项可以提高恢复速度。
extended-insert
将单行INSERT语句合并为一个可插入多个表行的语句;此选项还有助于加快数据恢复速度。
flush-logs
转储数据前先刷新服务器日志。
与增量备份一起使用时很有用。
lock-tables
通过在转储期间锁定数据库中的所有表,确保转储是一致的快照。
no-data
创建一个转储文件,其中包含仅重新创建数据库结构(仅CREATE DATABASE,CREATE TABLE…)所需的语句,而不包含数据(无INSERT语句)。
opt
mysqldump工具默认使用opt。
opt选项启用以下选项:添加表,添加锁,创建选项,禁用键,扩展插入,锁表,快速和设置字符集。
要禁用此选项,请使用skip-opt。
如果要跳过每个单独的选项,请使用skip- <option_name>。
例如,要跳过disable-keys选项,请使用skip-disable-keys选项。
quick
指示mysqldump在写入文件之前不要在内存中缓冲表。
此选项加快了从大表进行转储的速度。
result-file
指定输出转储文件的路径。
set-charset
指定字符集,例如数据库的latin1或utf8。
tables
创建一个或多个表的转储。
where
仅转储满足WHERE子句中条件的行。
使用mysqldump工具进行数据库备份
让我们举一些使用mysqldump工具备份数据库示例的示例。
1)使用mysqldump工具对单个数据库进行备份
以下命令从MySQL服务器备份单个数据库:
mysqldump --user=<username> --password=<password> --result-file=<path_to_backup_file> --databases <database_name>
使用以下语法:
<username>是将登录到MySQL服务器的用户帐户。
<password>是<username>的密码。
<path_to_backup_file>是备份文件的路径。
--databases是一个选项,指示mysqldump工具创建指定数据库的转储。
<database_name>是要备份的数据库的名称。
例如,以下命令将数据库classicmodels的备份创建到文件c:\ backup \ classicmodels.sql:
mysqldump --user=root --password=Supe!rPass1 --result-file=c:\backup\classicmodels.sql --databases classicmodels
2)使用mysqldump工具进行多个数据库的备份
要备份多个数据库,请在--database选项之后指定数据库名称列表:
mysqldump --user=<username> --password=<password> --result-file=<path_to_backup_file> --databases <dbname1>[,<dbname2>, ...]
例如,以下命令对classicmodels和world数据库进行备份:
mysqldump --user=root --password=Supe!rPass1 --result-file=c:\backup\classicmodels_world.sql --databases classicmodels world
3)使用mysqldump工具对所有数据库进行备份
要备份MySQL服务器中的所有数据库,请使用–all-database选项:
mysqldump --user=<username> --password=<password> --result-file=<path_to_backup_file> --all-databases
以下语句对当前MySQL服务器中的所有数据库进行备份:
mysqldump --user=root --password=Supe!rPass1 --result-file=c:\backup\all_databases.sql --all-databases
4)使用mysqldump工具从数据库中备份特定表
要从数据库备份特定表,请使用以下命令:
mysqldump --user=<username> --password=<password> --result-file=<path_to_backup_file> <database_name> <table_name>
您还可以在数据库名称后面指定多个表,一个接一个:
mysqldump --user=<username> --password=<password> --result-file=<path_to_backup_file> <database_name> <table1> <table2> <table3>
例如,要从classicmodels数据库备份employee表,请使用以下命令:
mysqldump --user=root --password=Supe!rPass1 --result-file=c:\backup\employees.sql classicmodels employees
5)使用mysqldump工具仅备份数据库结构
要仅备份数据库结构,请使用--no-data选项:
mysqldump --user=<username> --password=<password> --result-file=<path_to_backup_file> --no-data --databases <database_name>
该语句将生成一个转储文件,其中包含重新创建数据库结构所必需的SQL语句。
并且转储文件不包含INSERT语句。
例如,以下语句对数据库classicmodels的数据库结构进行备份:
mysqldump --user=root --password=Supe!rPass1 --result-file=c:\backup\classicmodels-ddl.sql --no-data --databases classicmodels
6)使用mysqldump工具仅备份数据
要仅备份数据库数据,请使用--no-create-info选项:
mysqldump --user=<username> --password=<password> --result-file=<path_to_backup_file> –-no-create-info --databases <database_name>
该语句将生成一个转储文件,其中包含锁定表并将数据插入表所必需的SQL语句。
它没有CREATE TABLE语句。
以下命令对数据库经典模型的数据进行备份:
mysqldump –-user=root --password=Supe!rPass1 --result-file=c:\backup\classicmodels-data.sql –-no-create-info --databases classicmodels
在本教程中,您学习了如何使用mysqldump工具在MySQL Server中进行数据库备份。