MySQL 启动正常,但无法连接

MySQL 启动正常,但无法连接

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。

-$

相关内容