ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
1. 备份命令(注意:sql语句不带 `CREATE DATABASE` 和 `USE database` 语句) ``` mysqldump -uusername -ppassword databasename > backupfile.sql ``` 2. 同时备份多个库(注意:`--database` sql语句带 `CREATE DATABASE` 和 `USE database` 语句 ) ``` mysqldump -uusername -ppassword --database database1 database2 > backupfile.sql ``` 3. 备份并压缩 ``` mysqldump -uusername -ppassword --database databasename | gzip > backupfile.sql.gz ``` 4. 备份同个库多个表 ``` mysqldump -uusername -ppassword databasename table1 table2 > backupfile.sql ``` 5. 记录二进制日志位置的备份 ``` mysqldump --single-transaction --flush-logs --master-data=2 -uusername -ppassword --database database1 database2 > backupfile.sql ``` 6. 直接复制到另一个库(`-C` 在服务器/客户端协议中使用压缩) ``` 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表的所有读写操作,均不会被阻塞。