使用dump方式备份CentOS数据库并拷贝到mac本地环境中
环境:
- centos: 7.4
- 服务器数据库:5.7.23
- macOS: macOS Big Sur 11.6
- mac中的数据库:5.7.31
- cpu都是x86架构
- 数据库文件大小约4.5G,超过10个G不建议使用dump方式备份
一. centos环境备份数据库
1.1 mysql dump介绍
1.1.1 语法
mysqldump [OPTIONS] database [tables]
mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
mysqldump [OPTIONS] --all-databases [OPTIONS]
1.1.2 参数
-A, --all-databases Dump all the databases. #全库
-B, --databases Dump several databases. #单库
-d #仅表结构
-t #仅数据
--compact #减少无用数据输出(调试)
-R, --routines #备份存储过程和函数数据
--triggers #备份触发器数据
--master-data={1|2} #告诉你备份后时刻的binlog位置,2:注释;1:非注释,要执行(主从复制)
--master-data #自动进行锁表和释放锁
--single-transaction #对innodb引擎进行热备
-x #锁住所有备份表
-l #锁住单表
-F, --flush-logs #刷新binlog日志(回顾binlog)
1.2 开始备份
mkdir /backup
## -R表示开启触发器或者函数的备份 gzip表示压缩备份的文件 oes是数据库名
mysqldump -uroot -ptest123 -R oes | gzip > /backup/oes.sql.gz
二.恢复到mac环境中
2.1 拷贝到本地
#将远程服务器的backup目录下的oes.sql.gz拷贝到本地的/Users/mac/mybak/目录下
scp root@192.169.3.4:/backup/oes.sql.gz /Users/mac/mybak/
2.2 恢复sql到本地数据库
cd /Users/mac/mybak/
## 注意本地mysql中存在oes这个数据库
gunzip < ./oes.sql.gz | mysql -uroot -ptest1234 oes