记录一次Mysql启动失败解决方案 文章目录 1.由于binlog占用磁盘空间太大,清理掉之后数据库启动不了2.网上找的解决方案删除bin-log.index来解决3.之后查看mysql.lo
记录一次Mysql启动失败解决方案
systemctl restart mysqld
卡住不动了
把/var/lib/myql/bin-log.index里面的内容也删掉,注释掉配置文件的bin-log,启动服务,结果还是不行
[ERROR] [MY-012894] [InnoDB] Unable to open './#innodb_redo/#ib_redo17190' (error: 1504)
ls -l ./#innodb_redo/#ib_redo17190
结果没有这个文件
在MySQL数据目录中删除InnoDB日志文件
也就是/var/lib/mysql目录下
sudo rm -rf ./#innodb_redo/
结果启动依旧解决不了
心里觉得数据应该都没丢失,只要数据库先启动就能解决
设置innodb_force_recovery=1是一种MySQL数据库的应急修复模式,它用于尝试恢复由于InnoDB引擎发生故障而导致的数据库崩溃。
在/etc/my.cnf中
[mysqld]innodb_force_recovery=1 ####最好放在首行
当将innodb_force_recovery参数设置为1时,MySQL将在启动过程中尝试执行一些简化和跳过错误检查的操作,以允许数据库在某种程度上继续运行。这可以帮助您备份或导出数据,并诊断和解决底层问题。
请注意以下事项:
总之,使用innodb_force_recovery=1仅限于临时应对数据库故障的情况,并且需要后续的详细故障诊断和修复工作。建议在尝试此模式之前备份数据并与数据库专家或管理员进行进一步的讨论和指导。
Neither found #innodb_redo subdirectory, nor ib_logfile* files
原因找到了,是我把/#innodb_redo/目录删掉导致的
其实只要清空改目录就可以了
在my.cnf里加上这两句指定一下日志存放目录可以了
还要在/var/lib/mysql下创建两个目录
mkdir \#innodb_redomkdir mysql-binchown -R mysql:mysql #innodb_redo ###记得改权限chown -R mysql:mysql mysql-bin
[mysqld]log_bin_basename=/var/lib/mysql/mysql-bininnodb_log_group_home_dir=/var/lib/mysql/redo_log/#innodb_redo
重启数据库完美解决
记得重启成功后将my.cnf里面的innodb_force_recovery=1给注释掉
附加一个mysql8的binlog自动清理命令
设置二进制日志过期时间为7天(相当于expire_logs_days=7),请执行以下命令:
sql
SET GLOBAL binlog_expire_logs_seconds = 604800; -- 7天的秒数
来源地址:https://blog.csdn.net/qq_45547688/article/details/131227204
--结束END--
本文标题: 【mysql】清理binlog导致数据库启失败解决方案
本文链接: https://www.lsjlt.com/news/396872.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-21
2024-05-21
2024-05-21
2024-05-21
2024-05-21
2024-05-21
2024-05-21
2024-05-21
2024-05-21
2024-05-21
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0