我有一个在Debian服务器上运行的大型phpBB论坛。在过去的几个月中,我经常发生mySQL崩溃(大约每10-14天一次)。这通过显示“太多连接1040”错误来体现。如果重新启动服务,则会收到错误消息,其中一个phpbb表“被标记为已崩溃,并且最后一次(自动?)修复失败[144]”。

如果我手动登录mysql并在表上运行REPAIR,则可以解决问题-修复需要很长时间-有问题的表具有1.5m +记录。此后,一切运行良好,直到整个过程在10天后重复一次。

如果我运行systemctl status mysqld,我会看到几行内容:

Jun 05 05:20:01 servername mysqld[1105]: 2020-06-05  5:20:01 140590520212224 [ERROR] mysqld: Table './phpbb_posts' is marked as crashed and last (automatic?) repair failed 
Jun 05 05:20:01 servername mysqld[1105]: 2020-06-05  5:20:01 140590520212224 [ERROR] mysqld: Table 'phpbb_posts' is marked as crashed and last (automatic?) repair failed 

但是如上所述,一切运行正常。

进行一些谷歌搜索,似乎正在关闭mysql服务并运行:
cd /var/lib/mysql/$DATABASE_NAME 
myisamchk -r $TABLE_NAME 
myisamchk -r -v -f $TABLE_NAME 

可以很好地解决问题。我很乐意尝试-大概是事前我只是备份了相关的DATABASE_NAME文件,以防万一发生问题?在这种情况下,我会将其放回原处?给定表的大小,大概该命令将花费很长时间运行?

在尝试之前,我很想了解发生了什么以及此修复程序将做什么。如果有人能解释我将不胜感激:)

提前致谢!

请您参考如下方法:

您已经找到了从ENGINE=MyISAM切换到ENGINE=InnoDB的重要原因。

http://mysql.rjweb.org/doc.php/myisam2innodb


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!