我现在用谷歌搜索了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-logprof
为root
,没有任何改变,生气,然后重新开始工作。
答案 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工具拒绝,例如AppArmor,SELinux,TOMOYO或{{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?