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