本篇使用的MySQL版本是5.7.30,注意不同版本之间可能会有差异。
一、导出操作
1、查找mysqldump命令位置
which mysqldump
2、mysqldump导出示例
用户名和密码分别是root和123456;导出远程库,使用-h+IP和-port+端口,如下所示。后面的命令默认导出本地库。
/usr/bin/mysqldump -h192.168.43.151 -port3306 -uroot -p123456 mydb1 > /aa.sql
1)导出所有数据库
/usr/bin/mysqldump -uroot -p123456 --all-databases > /aa.sql
2)导出数据库mydb1
/usr/bin/mysqldump -uroot -p123456 mydb1 > /aa.sql
3)导出数据库mydb1、mydb2
/usr/bin/mysqldump -uroot -p123456 --databases mydb1 mydb2 > /aa.sql
4)导出数据库mydb1的表t_test1
/usr/bin/mysqldump -uroot -p123456 mydb1 t_test1 > /aa.sql
5)导出数据库mydb1的表t_test1和t_test2
/usr/bin/mysqldump -uroot -p123456 mydb1 t_test1 t_test2> /aa.sql
二、导入操作
1、明确文件
查看导出的文件,发现只有同时导出多个数据库时,文件中才有创建数据库的语句。因此在无数据库的情况下需要手动创建数据库。
2、导入示例
1)方式一:登录到MySQL客户端,执行source命令(请先看下面的备注)
mysql> source /aa.sql;
2)方式二:指定用户名、密码,使用小于号“
[root@localhost /]# mysql -uroot -p123456 mydb1 < /aa.sql
备注:
1)导出文件不是多库,文件中没有创建库语句,上述两种方式都要指定数据库。
1.1)方式一使用use mydb1指定,否则文件内容会导入到当前use的库中。
1.2)方式二中命令写明mydb1,否则导入语句报错。
如果没有需要导入的数据库,则需要手动先创建再执行上面的语句,如下:
create database mydb1;
use mydb1;
set names utf8;
2)导出文件是多库,文件中有创建库语句,可以不指定数据库,自动创建数据库。
2.1)方式一不用使用use mydb1,直接执行:mysql> source /aa.sql;
2.2)方式二不载写库名,直接执行:mysql -uroot -p123456 < /aa.sql
三、定时备份
1、写脚本(后面会单独写一个详细的,本篇不是重点,不再写了)
#!/bin/bash
mysqldump-uroot -p123456 mydb1 > /var/mysql/backup/mydb1_$(date +%Y%m%d_%H%M%S).sql
2、配置定时任务
crontab -e
定时计划如下,每天晚上23:30备份。
30 23 * * * sh /usr/local/myshell/mysql/database_backup.sh
定时任务相关知识,参考点击这里