转载自:https://www.cnblogs.com/opsprobe/p/11616562.html
(1)备份所有的数据库
mysqldump -u username -ppassword --all-databases > bak.sql
(2)备份指定的数据库db1、db2和db3
mysqldump -u username -ppassword --databases db1 db2 db3 > bak.sql
(3)备份db数据库,当仅备份一个数据库时,--databases可以省略
mysqldump --u username -ppassword db4 > bak.sql
mysqldump -u username -ppassword --databases db4 > bak.sql
两者之间的差别在于不使用 --databases 选项,则备份输出信息中不会包含CREATE DATABASE或USE语句。不使用 --databases 选项备份的数据文件,在后期进行数据还原操作时,如果该数据库不存在,必须先创建该数据库。
(4)备份db数据库指定的表tb_name1、tb_name2和tb_name3
mysqldump -u username -ppassword -t db --tables tb_name1 tb_name2 tb_name3 > bak.sql
注意:mysqldump默认会将多条插入语句导出成一条insert语句格式,不方便查看,如:
insert into t values(1),(2),(3);
如果想导出多条insert语句,如:
insert into t values(1);
insert into t values(2);
insert into t values(3);
加上参数 --skip-extended-insert 即可。
mysqldump -u username -ppassword --skip-extended-insert --databases db_name --tables tb_name > tb_name.sql
使用mysql命令读取备份文件,实现数据还原功能:
mysql -u username -ppassword < bak.sql
mysql -u username -ppassword db4 < bak.sq1
案例:下面将 testDB 数据库中的内容导出成一个文件,并保存到 /home/目录下
[root@192 home]# mysqldump -u username -ppassword testDB > /home/bak.sql
然后进入MySQL数据库,彻底删除 testDB 数据库,然后重新创建 testDB 数据库
mysql> select * from testDB.mybook;
+--------+-------+-------+
| name | price | pages |
+--------+-------+-------+
| Linux2 | 40 | 200 |
| Linux4 | 60 | 400 |
+--------+-------+-------+
2 rows in set (0.00 sec)
mysql> drop database testDB;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql> exit
创建数据库
mysql> create database testDB;
Query OK, 1 row affected (0.00 sec)
mysql> exit
Bye
将备份的数据导入到刚新建的 testDB 数据库中
[root@192 home]# mysql -u username -ppassword testDB < /home/bak.sql
查看数据是否恢复成功
[root@192 home]# mysql -u root -p
Enter password:
mysql> select * from testDB.mybook;
+--------+-------+-------+
| name | price | pages |
+--------+-------+-------+
| Linux2 | 40 | 200 |
| Linux4 | 60 | 400 |
+--------+-------+-------+
2 rows in set (0.00 sec)