记一次 MariaDB 崩坏 恢复
检查日志的时候发现 mariadb 报了好多错,最近一段时间 一直有崩溃的;并且正好赶上要修改数据库看表字段,较多表要修改。
虽然修改表理论上是不会蹦了书库的,单最后结果是崩溃频率增加,当天下午到晚上就起不来数据库库了,我也要崩了!!!∑(゚Д゚ノ)ノ
1. 解决启动崩溃
然后 根据错误查找解决办法:
140605 13:39:32 [ERROR] Plugin 'InnoDB' init function returned error.
140605 13:39:32 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
140605 13:39:32 [ERROR] Unknown/unsupported storage engine: InnoDB
140605 13:39:32 [ERROR] Aborting
解决办法: 删日志》》 数据库数据文件夹下的 ib_logfile0,ib_logfile1 文件,删除后果然可以了;
但是很快又蹦了,并且启动不了,根据错误指示,加 innodb_force_recovery 参数 ;
然后尝试,从1到6,一直试到5 才能启动。
2. 备份
然后赶快备份咯。
mysqldump -uusername -ppswd dbname > 20210712.dbname.sql
这样单库备份过程中经常遇到备份到某个表时数据库又蹦了,添加忽略参数忽略这个表吧:
mysqldump -uuser -ppswd dbname --ignore-table=dbname.t1 --ignore-table=dbname.t2 --ignore-table=dbname.t3 --ignore-table=dbname.t4 --ignore-table=dbname.t5 > 20210712.dbname.sql
但是后来遇到 一个库里好多个表会蹦库~!
这招不行,重新来过的过程和次数太折磨人了~~~ 库大,耗时
并且这些表也是重要的表,要备份的!
遂尝试了 单个表备份,发现这会蹦的表,单个备份时竟然不蹦了~!!
于是,写脚本吧,一个库的表一个批次:
mysqldump -uusername -ppswd dbname t1 >> 20210712.dbname.sql
mysqldump -uusername -ppswd dbname t2 >> 20210712.dbname.sql
mysqldump -uusername -ppswd dbname t3 >> 20210712.dbname.sql
注意: 是双箭头重定向符号
保存为 bk_dbname ,然后执行 bash bk_dbname
3. 重新建库
把原数据文件夹 改名,重新建立一个同样名称的文件夹,改权限
chown -R mysql.mysql /var/lib/mysql
建立初始数据,和 初始化mysql 等
mysql_install_db
mysql_secure_installation
然后连接上 创建各个数据库, 然后还原
mysql -hhostname -uusername -ppassword dbname < backupdb.sql
4. 最后发现,可以更简单的操作
配置多实例,可以直接从坏库导入到新库!
echo dump table t1
mysqldump -c -n --insert-ignore -uuser -ppswd -S/data/3308/mysql.socket dbnamet1| mysql -uuser -ppswd dbname
echo dump table t2
mysqldump -c -n --insert-ignore -uuser -ppswd -S/data/3308/mysql.socket dbnamet2| mysql -uuser -ppswd dbname
-S 参数指定 坏库的 socket 文件路径
多实例(飞机传送),配置上并不复杂,新版更轻松。
PS: 最后, 检查日志, 是一个表的索引坏了引起崩溃,然后其他表也出现了索引坏了,最后大蹦.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2016-07-13 [笔记]linux下和windows下的 创建线程函数