所以我刚刚遇到了我的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会显示一个错误页面的域名,而不是浏览器说连接问题。
去检查DB状态:
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
命令行刚刚变得没有响应,我不得不在一段时间后停止它…所以是时候深入思考和谷歌模式了。
我最终偶然地找到了解决办法,就在这篇文章的下面。
现在合乎逻辑的事情是检查DB发生了什么,套接字没有明显的原因,并且DB也没有显示在Plesk上。
我不确定是什么进入我,但我继续尝试重新安装DB,所以我做
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
没有错误,看起来很好。试图重新启动DB服务:
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只是一个文件夹,如果它是一个分区,这是另一个过程
重启系统
reboot