安全更新后又出现“无法通过套接字连接到本地 MySQL 服务器”

安全更新后又出现“无法通过套接字连接到本地 MySQL 服务器”

解决了

正如 yoonix 指出的那样,这只是根分区已满的问题...感谢您的帮助!

-

是的,这个问题在这里和其他地方都被问过好几次了。如果这个问题不值得开个新帖子,我提前道歉。

确切的错误信息是:

Link to database cannot be established: SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

背景如下。我的一个客户在运行 Ubuntu 10.04 的专用服务器上托管他的网站。今天,他告诉我他的邮件服务器出了问题,因为他无法收到任何邮件。我尝试给他发送一封邮件,但收不到,我尝试在这个服务器上使用我自己的帐户,结果还是一样。数据中心似乎没有任何问题,邮件也没有被退回,所以我检查了日志,看到了以下内容:

warning: not enough free space in mail queue: 7573504 bytes < 1.5*message size limit

所以我告诉他没关系,这种设置每年都会发生一两次(空间不足)。仅供参考,我不是设置服务器的人。我知道做一些基本的维护,但遗憾的是我不是 Linux 专家。所以我做了一些清理工作,并借此机会安装了安全待处理的更新。一切进展顺利(至少在此过程中没有出现任何错误),然后我继续重新启动服务器。

在相当快的(似乎比平时快)重启后,我收到了这个可爱的错误消息,而不是网站。花了几个小时研究和测试一些看似相关的解决方案,但到目前为止,没有运气。其中大多数涉及重新安装(甚至安装)mysql。在这种情况下,以下是服务器上安装的软件包:

mysql-client-5.1        5.1.73-0ubuntu0.10.04.1
mysql-client-core-5.1   5.1.73-0ubuntu0.10.04.1
mysql-common            5.1.73-0ubuntu0.10.04.1
mysql-server            5.1.73-0ubuntu0.10.04.1
mysql-server-5.1        5.1.73-0ubuntu0.10.04.1
mysql-server-core-5.1   5.1.73-0ubuntu0.10.04.1

因此,我认为可以安全地假设我没有缺少任何 mysql 组件。如果我尝试启动该服务(因为它根本无法启动),我最终只会收到“作业失败”消息。我查看了 mysql 错误日志,除了这个错误之外,没有显示任何内容:

[ERROR] /usr/sbin/mysqld: Incorrect key file for table '/tmp/#sql_c46_0.MYI'; try to repair it

这个出现了几次,时间戳似乎表明它只发生在更新过程中。据我所知,它可能无关紧要,也不必担心。无论如何,数据库每晚都会备份。

我还没有尝试的一件事是重新安装 mysql。主要是因为我担心它可能会破坏其他东西。而且我不确定空间问题是否已清除,不知道在执行此操作后还要清除什么apt-get 自动删除. 以下是DF-H说:

rootfs                 10G  9,5G     0 100% /
/dev/root              10G  9,5G     0 100% /
/dev                  4,0G  164K  4,0G   1% /dev
none                  4,0G     0  4,0G   0% /dev/shm
none                  4,0G  1,1M  4,0G   1% /var/run
none                  4,0G     0  4,0G   0% /var/lock
none                  4,0G     0  4,0G   0% /lib/init/rw
/dev/md2              914G  115G  754G  14% /home

/var/run/ 上只有 1.1M 可用空间,但我认为套接字文件不需要那么多空间。如果有人能对我下一步该做什么提出一些建议,那就太好了!

这里的内容我的cnf

[client]
port            = 3306
socket          = /var/run/mysqld/mysqld.sock

[mysqld_safe]
socket          = /var/run/mysqld/mysqld.sock
nice            = 0

[mysqld]
user            = mysql
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /home/mysql
tmpdir          = /tmp
skip-external-locking
bind-address            = 127.0.0.1
key_buffer              = 16M
max_allowed_packet      = 16M
thread_stack            = 192K
thread_cache_size       = 8
myisam-recover         = BACKUP
query_cache_limit       = 1M
query_cache_size        = 16M
log_error                = /var/log/mysql/error.log
expire_logs_days        = 10
max_binlog_size         = 100M

[mysqldump]
quick
quote-names
max_allowed_packet      = 16M

[isamchk]
key_buffer              = 16M

!includedir /etc/mysql/conf.d/

相关内容