解决了
正如 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/