还原工具mysqldump

(一)备份

mysql> show databases;

+--------------------+

| Database                |

+--------------------+

| information_schema  |

| mysql                          |

| performance_schema |

| sys                               |

| mzl                                |

+--------------------+

(1) 执行全库备份

mysqldump -uroot -p123456 -h192.168.210.85 -P3306 --all-databases --single-transaction --force > all_db.sql

注:information_schema是特殊的数据库,即使全备,也不会备份该数据库。


(2) 备份多个数据库

 备份多个数据库:mysql和mzl

mysqldump -uroot -p123456 -h192.168.210.85 -P3306 --databases mysql mzl --single-transaction --force > mzl_mysql_db.sql

(3) 备份单个数据库

根据是否使用“--databases”参数,单个数据库的备份有2种方法。

方法1:备份单个数据库:mzl,使用--databases参数

mysqldump -uroot -p123456 -h192.168.210.85 -P3306 --databases mzl --single-transaction --force > mzl.sql


 方法2:备份单个数据库:mzl,不使用--databases参数

mysqldump -uroot -p123456 -h192.168.210.15 -P3306 mzl --single-transaction --force > mzl01.sql

两者的区别在于添加“--database”参数,则会在导出语句中包含建库语句。

[root@k8s-master mysqlbackup]# cat mzl.sql |grep "CREATE DATABASE"

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `testdb` /*!40100 DEFAULT CHARACTER SET utf8 */;

[root@k8s-masterr mysqlbackup]# cat mzl01.sql |grep "CREATE DATABASE"


(4)导出数据库的某些表

导出mzl的表class01,class02,目前来看,只能针对单个数据库的表进行导出

mysqldump -uroot -p123456 -h192.168.210.85 -P3306 --tables mzl class01 class02  --single-transaction --force > mzlall.sql


(二)还原

执行还原操作

[root@k8s-master mysqlbackup]# mysql -uroot -p123456 -h192.168.210.85 -P3306 < all_db.sql

查看还原结果:

mysql> show databases;

+--------------------+

| Database                |

+--------------------+

| information_schema  |

| mysql                          |

| performance_schema |

| sys                               |

| mzl                              |

+--------------------+

使用“--databases”参数创建的备份,必须先创建数据库,再执行导入,导入时须指定数据库名称。

如果没有创建数据库 或者 不指定数据库名称,则还原报错

[root@k8s-master mysqlbackup]# mysql -uroot -p123456 -h192.168.210.85 -P3306 < mzl.sql 

mysql: [Warning] Using a password on the command line interface can be insecure.

ERROR 1046 (3D000) at line 22: No database selected

指定数据库名称,还原正常

[root@k8s-master mysqlbackup]# mysql -uroot -p123456 -h192.168.210.85 -P3306 mzl< mzl.sql 

mysql: [Warning] Using a password on the command line interface can be insecure.


上一篇:LeetCode——1733. 需要教语言的最少人数(Minimum Number of People to Teach)——分析及代码(Java)


下一篇:数据库