天涯太远

导航

myslqdump导入导出

mysqldump最常用于备份一个整个的数据库:

语法:

导出语法
shell> mysqldump --opt db_name > backup-file.sql 你可以这样将转储文件读回到服务器: shell> mysql db_name < backup-file.sql 或者为: shell> mysql -e "source /path-to--backup/backup-file.sql" db_name

导出例子:

C:\Windows\system32>mysqldump -u root -p study > D:\study.sql
Enter password: ******

导入例子:

C:\Windows\system32>mysql -u root -p study <D:\study.sql
Enter password: ******

C:\Windows\system32>mysql -e "source D:\study.sql" study -u root -p
Enter password: ******

 

mysqldump也可以用于从一个Mysql服务器向另一个服务器复制数据时装载数据库:

shell> mysqldump --opt db_name | mysql --host=remote_host -C db_name

可以用一个命令转储几个数据库:

shell> mysqldump ---database db_name1 [db_name2...] > my_databases.sql

如果你想转储所有数据库,使用--all--database选项:

shell> mysqldump --all-databases > all_databases.sql

如果表保存在InnoDB存储引擎中,mysqldump提供了一种联机备份的途径(参见下面的命令)。该备份只需要在开始转储时对所有表进行全局读锁定(使用FLUSH TABLES WITH READ LOCK)。获得锁定后,读取二进制日志的相应内容并将锁释放。因此如果并且只有当发出FLUSH...时正执行一个长的更新语句,MySQL服务器才停止直到长语句结束,然后转储则释放锁。因此如果MySQL服务器只接收到短("短执行时间")的更新语句,即使有大量的语句,也不会注意到锁期间。

shell> mysqldump --all-databases --single-transaction > all_databases.sql

对于点对点恢复(也称为“前滚”,当你需要恢复旧的备份并重放该备份以后的更改时),循环二进制日志(参见5.11.3节,“二进制日志”)或至少知道转储对应的二进制日志内容很有用:

shell> mysqldump --all-databases --master-data=2 > all_databases.sql
shell> mysqldump --all-databases --flush-logs --master-data=2 > all_databases.sql

如果表保存在InnoDB存储引擎中,同时使用--master-data和--single-transaction提供了一个很方便的方式来进行适合点对点恢复的联机备份。

posted on 2020-04-17 15:21  天涯太远  阅读(270)  评论(0编辑  收藏  举报