1. 使用 mysqldump 备份 与 恢复
1.1 备份示例
# 备份全库
mysqldump --single-transaction -uroot -pliu123456 -A > /some/path/all_2022_12_26.sql
# 单库备份
mysqldump --single-transaction -uroot -pliu123456 db1 > /some/path/db1_2022_12_26.sql
# 单库单表备份
mysqldump --single-transaction -uroot -pliu123456 db1 t > /some/path/t_2022_12_26.sql
1.2 恢复示例
# 基础系统中 全库恢复
mysql -uroot -p"$MYSQL_ROOT_PASSWORD" < /some/path/all_2022_12_26.sql
# docker中 全库恢复
docker exec -i mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /some/path/all_2022_12_26.sql
单库恢复
如果db1存在,则可以直接恢复,如不存在,则需要先创建 db1 数据库 后,再执行恢复
create database db1
# 单库恢复
mysql -uroot -p"$MYSQL_ROOT_PASSWORD" db1 < /some/path/db1_2022_12_26.sql
# 单表恢复
mysql -uroot -p"$MYSQL_ROOT_PASSWORD" db1 < /some/path/t_2022_12_26.sql
2. 使用 select … into outfile ‘/path/…’; 备份
直接使用时,可能会出现 如下的错误:
The MySQL server is running with the –secure-file-priv option so it cannot execute this statement
这里表示 未 配置 好 secure_file_priv
项
使用show variables like "secure_file_priv";
查看一下这个变量的参数:
secure_file_priv值 | 含义 |
---|---|
NULL |
禁止文件的导入导出 |
'' |
(空字符串)允许所有文件的导入导出 |
一个特定的路径地址 | 只有该路径地址下的文件可以导入导出到mysql |
编辑配置文件 my.ini 修改 secure_file_priv = ''
,然后重启服务。
# 导出数据
select * from t into outfile '/path/t_112233.sql';
使用 load data infile ‘/path/…’ into table t; 导入数据
load data infile '/path/t_112233.sql' into table t;
load data 的 速度 要比 insert 快。
3. mydumper 和 myloader 工具
暂略……
4. 裸文件备份 XtraBackup
暂略……
作者:admin 创建时间:2022-12-26 17:56
最后编辑:admin 更新时间:2023-01-04 19:48
最后编辑:admin 更新时间:2023-01-04 19:48