Ubuntu 11.04 - 无法通过套接字'/var/run/mysqld/mysqld.sock'连接到本地MySQL服务器(13)

时间:2011-11-23 10:04:05

标签: ubuntu ubuntu-11.04 mysql

我现在用谷歌搜索了2天,最初得到了一个

'/var/run/mysqld/mysqld.sock' (2)

我使用以下方法解决了这个问题:

sudo touch /var/run/mysqld/mysqld.sock
sudo chown -R mysql /var/run/mysqld/

现在我收到了错误:

 '/var/run/mysqld/mysqld.sock' (13)

所以一切都有正确的权限,文件存在。有什么想法吗?

[编辑]

让它工作,虽然我不确定如何。我做aa-logprofroot,没有任何改变,生气,然后重新开始工作。

4 个答案:

答案 0 :(得分:6)

就我而言,正在运行mysqld_safe创建了一个新的mysqld.sock文件。

$ cd /etc/init.d/
$ mysqld_safe

你可能不会得到提示,但如果你重新开始你的会话,mysqld.sock文件将在某个地方。找到它

$ sudo find / -type s | grep mysqld.sock

答案 1 :(得分:5)

您不能(绝对不能)用常规文件替换文件系统管道/var/run/mysqld/mysql.sock。您需要使用mkfifo(1)来创建客户端用来与mysql服务器通信的pipe(7)

(13)可能表示您有权限被拒绝错误返回EACCES(通常具有小数值{{1} - 是的,我已经看过很多了。)

如果文件系统权限配置正确,您可能会被mandatory access control工具拒绝,例如AppArmorSELinuxTOMOYO或{{3 }}

默认情况下,AppArmor预先安装在Ubuntu系统上,可能拒绝访问管道。查看13/var/log/syslog/var/log/audit/audit.log输出,查看如下所示的消息:

dmesg(1)

(但改为使用type=AVC msg=audit(1320723925.179:45115): apparmor="DENIED" operation="open" parent=1 profile="/usr/sbin/ntop" name="/usr/share/ntop/html/PlotKit/excanvas.js" pid=1835 comm="ntop" requested_mask="r" denied_mask="r" fsuid=122 ouid=0 。)

如果您有这样的错误消息,请将name=/var/run/mysqld/mysql.sock作为aa-logprof运行并回答问题。有关配置AppArmor的更多信息,请参见root联机帮助页或SMACK

答案 2 :(得分:0)

您是否检查过mysql服务器mysqld正在运行?另外,检查系统消息日志以查看是否有任何抱怨。

答案 3 :(得分:0)

您是否尝试删除.lock文件并重新启动mysqld?