2014-06-29 71 views
2

此命令:连接到本地MySQL服务器没有sudo

mysql -uroot -p

提供了以下错误:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13)

但使用了sudo的权限相同,工作原理:

sudo mysql -uroot -p

我的MySQL服务器安装是自定义的,因为我需要5.1版本,所以我从官方网站下载RPM,将其转换为使用外星人的deb,并使用dpkg进行安装。文件名为:/var/lib/mysql/mysql.sock存在,但它的所有者是mysql用户。

请问,我怎么摆脱sudo要求?

的Ubuntu 14.04 MySQL服务器73年5月1日 MySQL的客户37年5月5日

回答

6

您需要将权限更改为/ var/lib/mysql /和sock文件,以使其可以被其他用户读取而不是root。你可以试试这个:

sudo chmod -R 755 /var/lib/mysql/

+0

没有帮助。套接字文件已经拥有所有用户的所有权限。 –

+0

好吧,试着分析套接字文件路径下的所有目录,它们需要有o + rx和sock文件(使其他人可以修改它不是个好主意)。您也可以尝试删除mysql.sock,然后重新启动mysqld,该文件应该由具有适当权限的守护程序创建。 – vnd

+2

好的,重新启动服务,我的意思是我重新启动,现在它的工作。 :) –

-4

我不认为你可以因为用户使用你的-u选项指定为根。为了成为根,你需要sudo。你可以尝试创建另一个用户。这样你就不需要sudo。

+1

还有就是mysql用户'root'和操作系统的'root'或'sudo'之间没有任何联系。常规系统用户以“root”身份连接到mysql是100%的可能。 – grossvogel