时间:2021-07-01 10:21:17 帮助过:31人阅读
sed‘/WHERE/{:a;N;/SET/!ba;s/\([^\n]*\)\n\(.*\)\n\(.*\)/\3\n\2\n\1/}‘ t1.txt | sed -r ‘/WHERE/{:a;N;/@4/!ba;s/### @2.*//g}‘ | sed‘s/### //g;s/\/\*.*/,/g‘ | sed‘/WHERE/{:a;N;/@1/!ba;s/,/;/g};s/#.*//g;s/COMMIT,//g‘ | sed‘/^$/d‘ > recover.sql
然后得到
UPDATE db01.t1
SET
@1=1 ,
@2=‘daiiy‘ ,
@3=2 ,
@4=‘guangzhou‘ ,
WHERE
@1=1 ;
其中 @1 @2 @3 对应的是你表的字段(左到右)
在处理
sed -i ‘s/@1/id/g;s/@2/name/g;s/@3/sex/g;s/@4/address/g‘ recover.sql
sed -i -r ‘s/(address=.*),/\1/g‘ recover.sql
验证一样语句对不对 cat recover.sql
6.链接数据库 mysql -h127.0.0 -uuser -ppwd
7.导入sql语句 source ~/recover.sql
相关语句
传送文件 scp filename user@host:addr(存放地址)
查看文件 less more head tail sed -n ‘10,100p‘
导出sql 导出整个数据库 mysqldump -u userName -p dabaseName > fileName.sql
导出数据库表结构 mysqldump -u userName -p -d dabaseName > fileName.sql
导出表数据 mysqldump -u userName -p dabaseName tableName > fileName.sql
导出表结构 mysqldump -u userName -p -d dabaseName tableName > fileName.sql
上面是用mysql log_bin
恢复数据 前提是有打开日志 查看是否打开:show variables
like
‘log_bin‘
;
恢复数据 要么有备份要么有开log_bin 不然貌似没办法了。
mysql数据恢复
标签:base64 删除 mysql-bin where margin any sed head mysq