我现在用谷歌搜索了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)
所以一切都有正确的权限,文件存在.有什么想法吗?
[编辑]
有它工作,虽然我不确定如何.我以root身份执行aa-logprof,没有任何改变,生气,然后重新设置它开始工作.
你不能(绝对不能)用常规文件替换文件系统管道/var/run/MysqLd/MysqL.sock.您需要使用mkfifo(1)来创建客户端用来与MysqL服务器通信的管道(7).
(13)可能也意味着你有一个权限被拒绝错误返回,EACCES(通常有十进制值13 – 是的,我已经看过很多).
如果正确配置了文件系统权限,则可能是mandatory access control工具(例如AppArmor,SELinux,TOMOYO或SMACK)拒绝访问.
AppArmor默认预安装在Ubuntu系统上,可能拒绝访问管道.检查/ 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代替.)
如果您有这样的错误消息,请以root身份运行aa-logprof并回答问题.有关配置AppArmor的更多信息可以在apparmor.d(5)联机帮助页或某些various wiki pages中找到.