mysql5.1数据库备份异常修复
概述
由于服务器迁移需要迁移历史mysql(一查是2016前的老的mysql,挺坚挺的),需要迁移到5.7.x版本上
通过mysqldump备份出sql(全库备份)文件在新的mysql中导入即可
开干
env
- redhat6.x
- mysql5.1.x
备份导入语句
mysqldump -h x -uroot -p321321 --single-transaction --all-databases | gzip > /opt/temp/all.sql.gz
gunzip < test.gz |mysql -hlocalhost -uroot -pxxxxx
gzip/gunzip
01、marked as crashed
Couldn't execute show create tables is marked as crashed and last (automatic?) repair failed
resolved
01、停止mysql
service mysqld stop
02、修复索引文件
myisamchk
-c //--check Check table for errors
-r //--recover Can fix almost anything except unique keys that aren't unique.
myisamchk -c -r /opt/mysql/sxws_fp/sdssbjk_rule_result_copy*.MYI
//防止默认参数过小大致失败,故加参数调大
myisamchk -c -r /data1/mariadb_data/databasename/*.MYI \
--tmpdir=/data1/tmp/ --sort_buffer_size=256M \
--key_buffer_size=256M --read_buffer_size=2M --write_buffer_size=2M
03、启动mysql
service mysqld start
02、table doesn't exist
mysql早期没开启大小写不敏感后期开启后,历史db下的表还是大写导致的历史问题(理论上需要重新再导入就可以了)所以删除db即可
01、删除异常db
drop database `sss-sss`; // `x`可以防止特殊字符转义
Error dropping database (can't rmdir '
删除提示文件不存在,删除物理文件在drop就可以了