mysqldump备份数据库与命令选项

本文介绍了mysqldump命令的基本用法,包括服务器间复制、备份所有数据库、备份单个数据库及单张数据表的方法。同时深入探讨了--master-data和--single-transaction等重要选项的作用。
mysqldump命令使用
该工具在mysql安装根目录下的bin/里面。
1、服务器间复制
#mysqldump --host=server1 test t1 | mysql --host=server2 test
2、备份所有的数据库
#mysqldum --all-database > dum.sql
3 、备份单个数据库
#mysqldump --database test > test.sql
或者
#mysqldump  test > test.sql
4、备份单张数据表
#mysqldump test t1 > test_t1.sql

mysql命令选项很多,可以通过#msqldump --help查看所有的选项。以下两个选项对数据库备份维护数据的一致性和数据恢复很重要。
--master-data[=#]   
This causes the binary log position and filename to be appended to the output. If equal to 1, will print it as a CHANGE MASTER command; if equal to 2, that command will be prefixed with a comment symbol. This option will turn --lock-all-tables on, unless --single-transaction is specified too (in which case a global read lock is only taken a short time at the beginning of the dump - don't forget to read about --single-transaction below). In all cases any action on logs will happen at the exact moment of the dump.Option automatically turns --lock-tables off.
启用该参数时,增加当前备份时binlog文件名和偏移量到备份文件中。
--master-data=1,添加的内容为CHANGE MASTER命令。如,CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000026', MASTER_LOG_POS=107;
--master-data=2,添加的内容为CHANGE MASTER命令的注释。如, -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000026', MASTER_LOG_POS=107;
如果mysqldump没有设置该参数,上面的内容都不会存在。
启用该选项,在dump之前会加上一个--lock-all-tables锁。除非同时启用了--single-transactions,这种情况下会加一个全局读锁。该选项会自动关闭--lock-tables锁。

--single-transaction 
Creates a consistent snapshot by dumping all tables in a  single transaction. Works ONLY for tables stored in storage engines which support multiversioning (currently only InnoDB does); the dump is NOT guaranteed to be consistent for other storage engines. While a --single-transaction dump is in process, to ensure a valid dump file (correct table contents and binary log position), no other connection should use the following
statements: ALTER TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE, as consistent snapshot is not isolated from them. Option automatically turns off --lock-tables.
该选项会在同一个事务内创建一个所有数据表一致性快照。该选项仅对支持多版本并发控制(multiversioning,MVCC,MultiVersion Concurrency Control)的存储引擎有效,因而目前仅支持InnoDB存储引擎。使用该选项时,其它连接最好不要使用ALTER TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABL语句,一致性快照没有隔离这些命令操作。该选项也会自动关闭--lock-tables锁。
### 备份MySQL数据库的基本命令格式 在Windows命令行中使用`mysqldump`工具可以实现对MySQL数据库备份操作。该工具是MySQL官方提供的客户端备份工具,通过MySQL协议连接至数据库服务器,将数据库结构和数据导出为SQL格式的文本文件[^2]。 基本命令格式如下: ```bash mysqldump -u [用户名] -p [数据库名] > [备份文件路径].sql ``` 在执行该命令前,需要将`[用户名]`、`[数据库名]`和`[备份文件路径]`替换为实际的值。例如,备份名为`mydatabase`的数据库,用户名为`root`,备份文件保存在`D:\backup\mydatabase_backup.sql`,则命令如下: ```bash mysqldump -u root -p mydatabase > D:\backup\mydatabase_backup.sql ``` 执行该命令后,系统会提示输入密码,输入正确的密码后即可开始备份过程[^3]。 ### 常用备份选项 为了提升备份的完整性和灵活性,可以结合多种参数进行备份操作。例如: - **备份多个数据库**: ```bash mysqldump -u root -p --databases db1 db2 > D:\backup\multiple_backup.sql ``` - **备份所有数据库**: ```bash mysqldump -u root -p --all-databases > D:\backup\all_databases_backup.sql ``` - **启用事务一致性备份(适用于InnoDB)**: ```bash mysqldump -u root -p --single-transaction mydatabase > D:\backup\mydatabase_backup.sql ``` - **同时备份存储过程和触发器**(默认已包含): ```bash mysqldump -u root -p --triggers --routines mydatabase > D:\backup\mydatabase_with_routines.sql ``` 这些选项可以组合使用,以满足不同的备份需求,例如完整备份数据库结构和数据、同时包含存储过程和触发器等[^4]。 ### 自动化备份建议 可以将上述命令写入Windows批处理文件(`.bat`),并通过“任务计划程序”设置定时任务,实现自动备份。该方式适用于需要定期执行备份任务的场景,确保数据安全性和可恢复性[^1]。 例如,创建一个名为`backup.bat`的批处理文件,内容如下: ```batch @echo off set DATE=%date:~0,4%%date:~5,2%%date:~8,2% mysqldump -u root -p your_password mydatabase > D:\backup\mydatabase_%DATE%.sql echo Backup completed. ``` 将`your_password`替换为实际密码,并设置任务计划程序每天定时运行该批处理文件即可。 ### 注意事项 - 确保`mysqldump`命令路径正确,通常位于MySQL安装目录的`bin`子目录中,如`C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump.exe`。 - 备份文件应存储在安全的位置,并定期检查其完整性和可恢复性。 - 避免在脚本中明文暴露数据库密码,可以通过配置文件或环境变量方式提升安全性[^1]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值