![MySQL 启动正常,但无法连接](https://linux22.com/image/558904/MySQL%20%E5%90%AF%E5%8A%A8%E6%AD%A3%E5%B8%B8%EF%BC%8C%E4%BD%86%E6%97%A0%E6%B3%95%E8%BF%9E%E6%8E%A5.png)
MySQL 版本
mysql Ver 14.12 Distrib 5.0.77, for redhat-linux-gnu (i386) using readline 5.1
重启机器。然后尝试...
$ ps aux | grep mysql
mysql 3298 0.0 0.8 136772 17216 ? Rl 12:13 0:00
/usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql
--pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking
--socket=/var/lib/mysql/mysql.sock
xxxxx 3311 0.0 0.0 4000 680 pts/1 R+ 12:13 0:00
grep mysql
root 3461 2.3 0.0 4624 1232 ? S 11:55 0:26
/bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql
--socket=/var/lib/mysql/mysql.sock --log-error=/var/log/mysqld.log
--pid-file=/var/run/mysqld/mysqld.pid --user=mysql
因此 mysqld 正在运行。
但是我无法与它建立客户端连接......
$ mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through
socket '/var/lib/mysql/mysql.sock' (2)
当我尝试使用 Sequel Pro 从另一台机器连接时出现错误...
“MySQL 说:在‘读取初始通信包’时与 MySQL 服务器失去连接,系统错误:61”
答案1
该消息ERROR 2002 (HY000):
通常意味着 mysqld 没有运行。
来自评论:该消息 "Error writing file '/var/run/mysqld/mysqld.pid'"
出现在mysql.log中
解决方案:
保存文件系统的设备/var
已满,无法创建 mysqld.pid 文件,因此 mysqld 无法启动。
在 /var 文件系统上创建一些空间。
答案2
尝试使用mysqld_safe --console
命令提示符运行 mysql,这样它就不会脱离终端。检查控制台是否有错误,还要检查日志文件是否有错误(它会在控制台上打印日志文件的绝对路径,类似于110818 23:53:57 mysqld_safe Logging to '/var/log/mysqld.log'.
)。当然,在运行之前,您应该停止现有的 mysql 实例mysqld_safe --console
答案3
使用 kill 终止 mysqld 和 mysqld_safe 进程(先尝试 15,如果无法停止,再尝试 9),然后尝试重新启动 mysql。同时确保 mysql 没有绑定到特定 IP。
-$