mysqldump备份数据库
- 备份命令(注意:sql语句不带
CREATE DATABASE
和USE database
语句)1
mysqldump -uusername -ppassword databasename > backupfile.sql
- 同时备份多个库(注意:
--database
sql语句带CREATE DATABASE
和USE database
语句 )1
mysqldump -uusername -ppassword --database database1 database2 > backupfile.sql
- 备份并压缩
1
mysqldump -uusername -ppassword --database databasename | gzip > backupfile.sql.gz
- 备份同个库多个表
1
mysqldump -uusername -ppassword databasename table1 table2 > backupfile.sql
- 记录二进制日志位置的备份
1
mysqldump --single-transaction --flush-logs --master-data=2 -uusername -ppassword --database database1 database2 > backupfile.sql
- 直接复制到另一个库(
-C
在服务器/客户端协议中使用压缩)1
mysqldump -uusername -ppassword databasename | mysql -hhost -uusername -ppassword -C databasename
其他常用参数:
--all-databases
:备份所有数据库--add-drop-database
:备份出带删除数据库语句的sql备份--add-drop-table
:备份出带删除数据表语句的sql备份--no-data
:备份数据库结构,不备份数据--flush-logs
:启动转储之前刷新服务器中的日志文件--master-data[=#]
:这将导致二进制日志位置和文件名附加到输出。- 如果等于
1
,将打印为更改主命令 - 如果等于
2
,则该命令将以注释符号作为前缀 - 这个选项将使
--lock-all-tables
打开,除非指定了--single-transaction
- 如果等于
--add-locks
:在INSERT语句周围添加锁。(默认为打开;使用--skip-add-locks
可禁用。)--lock-tables
:锁定一个库的所有表以供读取。(默认为打开;使用--skip-lock-tables
可禁用。)--lock-all-tables
:锁定所有数据库中的所有表。(使用--single-transaction
和--lock-tables
会自动关闭)--single-transaction
:针对支持MVCC(多版本)事务的存储引擎,例如innodb,mysqldump提供了在导出数据之前,开启一个事务,由数据库保证单次导出数据的一致性,此时针对Innodb表的所有读写操作,均不会被阻塞。