Mysql表内容的备份以及恢复

最近写数据库测试脚本去修改后台配置的表数据,写完之后想到了一个优化点,就是脚本修改之前把要修改的表的内容备份到服务器,等脚本运行完之后,再选择是否恢复到修改之前的内容

这里记录一下期间遇到的问题,哎。。走过之后才知道坑确实不少

前提:是通过Navcat第三方工具连接到了服务端的Mysql

(1)备份表内容碰到的问题,如图所示:

解决: 该问题主要是,服务器mysql的my.ini配置文件设置了默认文件的路径

执行命令查看默认路径:show variables like '%secure%';

那么我们备份到该位置就行了

接下来看下具体备份表内容的语句:

SELECT * INTO OUTFILE '/var/lib/mysql-files/config201811261425.txt'

FIELDS TERMINATED BY ','

OPTIONALLY ENCLOSED BY '"'

LINES TERMINATED BY '\n'

FROM main_app_configcenter

执行成功

备注:如图提示已存在,就是该名称的文本内容已备份,修改下备份名称就行了,这里的好像不能覆盖,那么Python 执行的时候,用当前时间命名就行了,后续会写下Python操作这部分的内容

(2)恢复表内容遇到的问题

问题解决:该问题是因为恢复表内容的表有外键引起的

那么在Mysql中取消外键约束: SET FOREIGN_KEY_CHECKS=0

那么内容恢复之后再:在Mysql中取消外键约束: SET FOREIGN_KEY_CHECKS=1

那么接下来看恢复表内容的语句:

SET FOREIGN_KEY_CHECKS = 0;

LOAD DATA INFILE '/var/lib/mysql-files/config201811231629.txt' REPLACE INTO TABLE main_app_configcenter fields terminated by ','

enclosed by '"'

LINES TERMINATED BY '\n'

稍后写的文章会介绍Python进行该脚本的操作

你可能感兴趣的:(Mysql表内容的备份以及恢复)