Mysql客户端连接错误

我已经将MySQL从版本5.0升级到版本5.1,现在不能像命令mysql -uroot那样从命令行访问mysql。 错误消息如下:无法通过套接字“/var/run/mysql/mysql.sock”连接到本地MySQL服务器

在Linux上openSuSE 11.1。

这是否与我的主机文件不正确? 还是suse的MySQL包被破坏?

问题是mysql客户端找不到用于与mysql服务器通信的unix套接字。 这是因为mysqld没有运行,mysqld没有创build套接字,或者套接字在错误的地方。

检查事项:

  1. 是mysqld运行? “ps aux | grep mysql”。 尝试重新启动它
  2. 是mysqld创build套接字? “lsof -p $ mysqld_pid | grep sock”
  3. 它是在正确的地方。 看看服务器configuration中的“套接字”选项。 默认是“/tmp/mysql.sock”您可能需要设置它以匹配您的客户端或更改客户端configuration以匹配服务器位置。

http://dev.mysql.com/doc/refman/5.1/en/server-options.html#option_mysqld_socket

你升级后是否启动了MySQL服务?

service mysql restart 

问题是mysql客户端从两个文件/etc/my.cnf或〜/ .my.cnf中检测到它的设置。
组100中的用户帐户对于mysql.sock套接字文件没有值,但是该值是为root设置的。 通常,/etc/my.cnf似乎对不在mysql组中的用户具有读访问权限,但是在openSuSE 11.0和mysql 5.1中,此文件现在具有rw的mysql访问权限,并且只读访问组,并且不访问用户群组。 通过给用户只读访问文件,我设法解决这个问题,但是没有我问题是mysql.sock文件的权限。 我仍然需要创build