mysqldump 是 MySQL 数据库备份工具,用于将数据库结构和数据导出为 SQL 文件。以下是详细使用方法:
mysqldump -u [username] -p[password] [options] [database_name] [table_name] > [output_file.sql]
mysqldump -u root -p database_name > backup.sql
mysqldump -u root -p database_name table1 table2 > backup.sql
mysqldump -u root -p --databases db1 db2 db3 > backup.sql
mysqldump -u root -p --all-databases > full_backup.sql
mysqldump -u root -p --no-data database_name > structure.sql
mysqldump -u root -p --no-create-info database_name > data.sql
选项 | 说明 |
---|---|
-u |
指定用户名 |
-p |
提示输入密码 |
-h |
指定主机名 |
-P |
指定端口号 |
--add-drop-table |
在每个表创建前添加 DROP TABLE 语句 |
--add-locks |
在 INSERT 语句前后添加 LOCK TABLES 和 UNLOCK TABLES |
--complete-insert |
使用完整的 INSERT 语句(包含列名) |
--compress |
压缩客户端和服务器之间的通信 |
--create-options |
在 CREATE TABLE 语句中包含所有 MySQL 特定选项 |
--extended-insert |
使用多行 INSERT 语法(更紧凑) |
--lock-tables |
备份前锁定所有表 |
--quick |
不缓冲查询,直接导出 |
--routines |
包含存储过程和函数 |
--triggers |
包含触发器 |
--events |
包含事件 |
--single-transaction |
对 InnoDB 表使用事务保证一致性 |
mysqldump -u root -p database_name | gzip > backup.sql.gz
0 3 * * * /usr/bin/mysqldump -u root -pPASSWORD database_name > /backups/db_$(date +\%Y\%m\%d).sql
mysqldump -u root -p --ignore-table=database_name.table1 --ignore-table=database_name.table2 database_name > backup.sql
mysql -u root -p database_name < backup.sql
mysqldump -u root -p --tab=/tmp --fields-terminated-by=',' --fields-enclosed-by='"' --lines-terminated-by='\n' database_name
--single-transaction
选项(仅限 InnoDB)--lock-tables
或 --single-transaction
保证数据一致性-p
后面(不安全)或单独输入(更安全)-h
指定主机名希望这些信息对您有所帮助!如需更详细的参数说明,可以查看官方文档或运行 mysqldump --help
。