所以我刚刚遇到了我的 Plesk 服务器的问题,并且一直在尝试解决它。这是在 Plesk Obsidian 18.0.36 服务器上运行的 Ubuntu 20.04,在 MariaDB 10.3.29 上运行。
错误:
DB query failed: SQLSTATE[HY000] [2002] No such file or directory
我做了大多数人会做的事情:
plesk repair all -y
DB query failed: SQLSTATE[HY000] [2002] No such file or directory
再次出现同样的错误,所以我继续重新启动服务器并希望能够解决数据库的问题。
不起作用,但至少 Plesk 会显示域的错误页面,而不是浏览器显示连接问题。
去检查数据库状态:
systemctl status mysql
● mariadb.service - MariaDB 10.3.29 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: activating (start) since Sun 2021-07-25 01:37:23 PDT; 11min ago
Docs: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
Process: 1220 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
Process: 1288 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
Process: 1291 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ] && systemctl set-environment _WSREP_START_POSITION=$VAR >
Main PID: 1397 (mysqld)
Status: "Waiting for page cleaner"
Tasks: 3 (limit: 18993)
Memory: 79.8M
CGroup: /system.slice/mariadb.service
└─1397 /usr/sbin/mysqld
它说
Waiting for page cleaner
非常有趣,不知道那是什么,但我相信它是由重新启动触发的缓冲区清理器。
然后我尝试重新启动和停止服务:
$ systemctl restart mysql
^C
$ systemctl stop mysql
^C
命令行变得没有响应,我必须在一段时间后停止它......所以是时候进入一些深入思考和谷歌搜索模式了。
我最终无意中找到了解决方案,它就在这篇文章的下面。
现在合乎逻辑的事情是检查数据库到底发生了什么,由于明显的原因套接字不存在,并且数据库也没有显示在 Plesk 上。
我不知道发生了什么,但我继续尝试重新安装数据库,所以我这样做了
sudo apt-get update
我收到一大堆新错误:
Error writing to output file - write (28: No space left on device)
然后我突然灵光一现并做了:
df -h
令我惊讶的是,
/var
卷已满,我以为需要一段时间才能填满,但显然,我错了。
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/plesk-var 50G 48G 0 100% /var
所以我加大音量
lvresize --resizefs --size 200GB /dev/plesk/var
更新了
sudo apt-get update
没有错误,看起来不错。尝试重新启动数据库服务:
service mariadb restart
一切都好,页面正在加载,一切看起来都很好,看起来整个事情已经修复并完成了。
我确实再次遇到了问题,但运行
plesk repair all -y
解决了这些问题。
只是想与遇到问题的任何人分享这个,也许这会有所帮助,如果我再次遇到这个问题,还有一个供将来参考的文档。
另一个解决方案是:
sudo cat /var/log/mysql/error.log
日志的最后几行将指示问题。
你可以试试
sudo mkdir newtmp
sudo cp -r /tmp /newtmp
sudo rm -rf /tmp
mkdir /tmp
您进行备份,以防它要求您提供文件并且它不会自动重建它,否则您将不会使用它,备份是newtmp,如果tmp只是一个文件夹(如果它是一个分区,则它是另一个分区),则此方法有效程序
重新启动系统 plesk
reboot
就是全部
就我而言,发行版升级后(Debian 11 到 12 以及 MariaDB 11.4),有两个问题需要解决:
修复:
systemctl enable mariadb
systemctl restart psa
供您参考,启用 mariadb 也会启动该过程,但如果您有疑问,您当然可以使用以下方法轻松检查:
systemctl status mariadb