Ubuntu 16.04 LTS下MediaWiki装VirtualEditor后MySQL Socket丢失求助
先明确你的问题场景:
运行Ubuntu 16.04 LTS,MediaWiki 1.30.0搭配MySQL、Apache2、PHP7.0初始运行正常。安装Virtual Editor扩展(需Parsoid+RESTBase)后,访问名为
bible的wiki时出现Sorry! ...报错,且MySQL socket文件消失。
下面是一步步的排查和修复方案:
1. 确认MySQL服务状态与Socket文件
首先检查MySQL是否还在运行:
sudo systemctl status mysql
如果服务已经停止,先重启它:
sudo systemctl restart mysql
接着找到MySQL配置里的socket路径,Ubuntu 16.04的MySQL配置一般在/etc/mysql/mysql.conf.d/mysqld.cnf,打开后找这一行:
socket = /var/run/mysqld/mysqld.sock
检查这个路径下的socket文件是否存在:
ls -l /var/run/mysqld/mysqld.sock
如果文件不存在,手动创建目录并设置正确权限,再重启MySQL:
sudo mkdir -p /var/run/mysqld sudo chown mysql:mysql /var/run/mysqld sudo systemctl restart mysql
2. 同步MediaWiki的数据库Socket配置
打开MediaWiki根目录下的LocalSettings.php,确保数据库连接部分指定了正确的socket路径,和MySQL配置一致:
$wgDBsocket = '/var/run/mysqld/mysqld.sock';
如果之前没加这一行,添加上并保存,然后刷新wiki页面测试。
3. 排查资源耗尽导致MySQL被终止的情况
Parsoid和RESTBase运行时会占用不少内存,可能触发系统的OOM Killer(内存不足时自动终止进程),导致MySQL被关掉。可以查系统日志确认:
grep -i 'oom-killer' /var/log/syslog
如果发现MySQL确实被OOM终止,需要调整资源配置:
- 关闭服务器上不必要的后台服务,释放内存
- 修改MySQL的
mysqld.cnf,降低内存占用参数,比如把innodb_buffer_pool_size设为适合你服务器内存的值(1G内存的机器建议设为256M):
innodb_buffer_pool_size = 256M
- 重启所有相关服务:
sudo systemctl restart mysql parsoid restbase
4. 检查Parsoid的MediaWiki连接配置
确保Parsoid的配置文件(通常是/etc/mediawiki/parsoid/config.yaml)正确指向你的MediaWiki实例,避免异常请求耗尽MySQL连接池:
mwApis: - uri: 'http://你的wiki域名/w/api.php' domain: '你的wiki域名'
配置好后重启Parsoid:
sudo systemctl restart parsoid
5. 查看详细错误日志定位问题
如果上面的步骤都没解决,查看MediaWiki和Apache的错误日志获取更多细节:
# MediaWiki错误日志(路径可能根据安装方式略有不同) tail -n 20 /var/log/mediawiki/error.log # Apache错误日志 tail -n 20 /var/log/apache2/error.log
日志里会给出更具体的错误信息,比如数据库权限问题、连接超时等,方便进一步排查。
内容的提问来源于stack exchange,提问作者Christian Sirolli

