本网站由以下捐款支持:OEIS基金会.

OEIS日志

来自OeisWiki
跳转到:航行,搜索

OEIS日志

  • 此文件的目的是提供一个管理员可以记录系统更改和修复的位置。
  • 除非你是管理员,否则请不要触摸此页。


2018年7月23日:mediawiki无法与mysql服务器通信

  • 报告了以下错误:OEIS中的用户链接已断开。例如,杰弗里·沙利特在中显示为“_Jeffrey Shallit_”317177美元而不是链接到他的用户页面。
  • 还报告了其他错误。例如,有几个人报告收到错误消息“身份验证时发生意外错误”
  • David Applegate说:

我看了一下。

最严重的问题是mediawiki无法与mysql服务器通信。这破坏了维基,也破坏了对主要OEIS的登录。

原因可能是mysql数据库已损坏,或者存在某种版本不匹配。mysql昨晚9点左右崩溃,在重启过程中抛出了一些错误(来自/var/log/mysql/error.log.1):

2018-07-23 21:57:11 139686236439104[ERROR]mysql.db的列计数错误。应为22,实际为20。表可能已损坏2018-07-23 21:57:11 139686236439104[ERROR]mysql.user在位置29没有`Event_priv`列2018-07-23 21:57:11 139686236439104[ERROR]mysqld:事件调度器:初始化系统表时出错。禁用事件调度器。

从前面的消息中:2018-07-23 21:57:11 139686236439104[注]InnoDB:Percona XtraDB(网址:http://www.percona.com)5.6.36-82.1启动;日志序列号42434347594它似乎正在运行Percona XtraDB。我不知道这是不是有意的,也不知道mysql版本是否在服务器启动后得到了升级,而数据库从未迁移。

其他注意事项:在syslog中,我注意到几个可能需要解决的错误:

来自mailgun sendmail(通过cron)的一个错误,抱怨“提供但未定义的标志:-o”oeisdb发出警告:“服务器正在安全身份验证模式下运行,但wikiuser@localhost具有旧格式的密码。。。"

从/var/log/messages可以看出,mysql重启是因为系统内存不足“mysqld调用oom-killer”。这可能是因为有大量的php-cgi过程。

从谷歌上看,我们可能需要运行mysql_upgrade来适应MariaDB的升级。但在做这件事之前,最好先和罗斯核实一下。

我将尝试执行以下序列:

服务mysqld停止cp-rp/var/mysql/var/myssql.backup.20180724mysql_升级开启服务

尝试升级mysql数据库。

笔记:运行“mysql_upgrade”需要运行mysqld,所以首先重新启动mysqld。然后出现错误

大卫@oeis4:~$sudo mysql_upgrade版本检查失败。调用“mysql”命令行客户端时出现以下错误错误1275(HY000):服务器正在--secure-auth模式下运行,但“root”@“localhost”具有旧格式的密码;请将密码更改为新格式致命错误:升级失败

通过“sudo服务mysqld停止”停止mysqld。通过“sudo mysqld--skip-grant-tables”重新启动mysqld而不进行身份验证取得了更多进展,但失败了,可能是因为特权文件没有加载,它想升级它们。

重置mysqlroot@localhost密码到*******************************

运行“sudo mysql_upgrade-u root-p”并为其提供密码

停止并重新启动mysqld(sudo服务mysqld停止;sudo服务器mysqld启动)

检查/var/log/mysql/error.log不再抱怨表大小。

可疑问题是表单中的消息错误1275(HY000):服务器正在--secure-auth模式下运行,但“wikiuser”@“localhost”具有旧格式的密码;请将密码更改为新格式

已验证我无法使用用户wikiuser登录mysql(错误相同)。

使用重置wikiuser密码

update mysql.user set Password=Password('…'),其中user='wikiuser';

现在工作

上面是一封较长的电子邮件,详细介绍了这些步骤。但缩写形式是1.我不知道mysqlroot@localhost密码,所以重置它(值包含在前一封电子邮件中,但您可能想再次重置为电子邮件中没有的值)。2.运行mysql_upgrade来升级一些表以反映新版本。3.重置mysqlwikiuser@localhostsecure_auth表单的密码(即使用password('password')),但没有更改实际密码(使用LocalSetttings_pw.php中的密码)。4.重新启动mysql服务器。

在此过程中,我在/var/lib/mysql.backup.20180724中复制了/var/lab/mysql。一旦你确认一切似乎都正常,就可以删除。

这似乎解决了问题。