MySQL 套接字消失

MySQL 套接字消失

我运行的是 Ubuntu 16.04 LTS,带有 MediaWiki 1.30.0 的 MySQL 服务器以及 Apache2 和 PHP7.0。所有安装都成功了,我设法让它们全部运行起来。然后我开始安装 MediaWiki 的扩展。一切都很好,直到我安装虚拟编辑器扩展。它要求我同时安装 Parsoid 和 RESTBase。所以我将它们与虚拟编辑器一起安装。然后我去检查我的 wiki 并看到此消息(wiki 的数据库名称是“bible”):

抱歉!本网站遇到技术故障。

尝试等待几分钟然后重新加载。

(无法访问数据库:未知数据库‘bible’(localhost))

回溯:

#0 /var/www/html/w/includes/libs/rdbms/loadbalancer/LoadBalancer.php(1028): Wikimedia\Rdbms\Database->reportConnectionError('未知数据库...')

#1 /var/www/html/w/includes/libs/rdbms/loadbalancer/LoadBalancer.php(670): Wikimedia\Rdbms\LoadBalancer->reportConnectionError()

#2 /var/www/html/w/includes/GlobalFunctions.php(2858): Wikimedia\Rdbms\LoadBalancer->getConnection(0, Array, false)

#3 /var/www/html/w/includes/user/User.php(493): wfGetDB(-1)

#4 /var/www/html/w/includes/libs/objectcache/WANObjectCache.php(892): 用户->{closure}(false, 3600, Array, NULL)

#5 /var/www/html/w/includes/libs/objectcache/WANObjectCache.php(1012): WANObjectCache->{closure}(false, 3600, Array, NULL)

#6 /var/www/html/w/includes/libs/objectcache/WANObjectCache.php(897): WANObjectCache->doGetWithSetCallback('global:user:id:...', 3600, Object(Closure), Array, NULL)

#7 /var/www/html/w/includes/user/User.php(520): WANObjectCache->getWithSetCallback('global:user:id:...', 3600, Object(Closure), Array)

#8 /var/www/html/w/includes/user/User.php(441): 用户->loadFromCache()

#9 /var/www/html/w/includes/user/User.php(405): 用户->loadFromId(0)

#10 /var/www/html/w/includes/session/UserInfo.php(88): 用户->load()

#11 /var/www/html/w/includes/session/CookieSessionProvider.php(119): MediaWiki\Session\UserInfo::newFromId('1')

#12 /var/www/html/w/includes/session/SessionManager.php(487): MediaWiki\Session\CookieSessionProvider->provideSessionInfo(Object(WebRequest))

#13 /var/www/html/w/includes/session/SessionManager.php(190): MediaWiki\Session\SessionManager->getSessionInfoForRequest(Object(WebRequest))

#14 /var/www/html/w/includes/WebRequest.php(735): MediaWiki\Session\SessionManager->getSessionForRequest(Object(WebRequest))

#15 /var/www/html/w/includes/session/SessionManager.php(129): WebRequest->getSession()

#16 /var/www/html/w/includes/Setup.php(762): MediaWiki\Session\SessionManager::getGlobalSession()

#17 /var/www/html/w/includes/WebStart.php(114): require_once('/var/www/html/w...')

#18 /var/www/html/w/index.php(40): 需要('/var/www/html/w...')

#19 {主要}

我检查了 MySQL 中的错误日志,错误消息表明试图在不使用密码的情况下访问数据库。我重新启动了计算机,然后重新启动了 Apache、Parsoid、RESTBase 和 MySQL。但我无法成功重新启动 MySQL。通过输入命令查看错误日志journalctl -xe,发现它无法启动,因为它无法写入/var/lib/mysql/。我去 StackExchange 看看能否找到解决方案,一个答案说使用命令mysql -u root -p。我照做了,输入了密码,结果出现了这个错误:

错误 2002 (HY000):无法通过套接字“/var/run/mysqld/mysqld.sock”连接到本地 MySQL 服务器 (2)

我还通过输入以下内容来检查它的状态sudo mysqladmin status

mysqladmin:连接到“localhost”上的服务器失败错误:“无法通过套接字“/var/run/mysqld/mysqld.sock”连接到本地 MySQL 服务器 (2)”请检查 mysqld 是否正在运行以及套接字:“/var/run/mysqld/mysqld.sock”是否存在!

我想验证它是否存在,但浏览到套接字的位置时,我发现它不在那里。我看到一个关于缺少 MySQL 套接字的答案,其中说使用命令touch创建套接字和另一个文件。我照做了,但仍然遇到同样的问题。我回到目录,发现两个文件丢失了。所以我用命令再次创建了它们,touch并观察了文件夹以查看发生了什么。大约半分钟后,文件夹似乎被删除并重新创建。我被踢出文件夹进入它的父目录,当我返回时,文件不见了。

有人知道为什么会发生这种情况吗,或者至少我该如何解决这个问题并让 MySQL 重新启动并运行?

相关内容