Jam*_*ber 8 mysql ubuntu ubuntu-11.04
我现在用谷歌搜索了2天,最初得到了一个
'/var/run/mysqld/mysqld.sock' (2)
Run Code Online (Sandbox Code Playgroud)
我通过使用:
sudo touch /var/run/mysqld/mysqld.sock
sudo chown -R mysql /var/run/mysqld/
Run Code Online (Sandbox Code Playgroud)
现在我收到错误:
'/var/run/mysqld/mysqld.sock' (13)
Run Code Online (Sandbox Code Playgroud)
所以一切都有正确的权限,文件存在.有什么想法吗?
[编辑]
有它工作,虽然我不确定如何.我做aa-logprof
了root
,没有任何改变,生气,然后重新设置它开始工作.
In my case, running mysqld_safe
created a new mysqld.sock
file.
$ cd /etc/init.d/
$ mysqld_safe
Run Code Online (Sandbox Code Playgroud)
You'll probably won't get the prompt back, but if you restart your session, a mysqld.sock file will be somewhere. Find it with
$ sudo find / -type s | grep mysqld.sock
Run Code Online (Sandbox Code Playgroud)
您不能(绝对不能)用/var/run/mysqld/mysql.sock
常规文件替换文件系统管道.您需要使用mkfifo(1)
创建pipe(7)
客户端用于与mysql服务器通信的.
这(13)
可能也意味着你有一个权限被拒绝错误返回,EACCES
(通常有十进制值13
- 是的,我已经看过很多).
如果正确配置了文件系统权限,则可能是由强制访问控制工具(如 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
Run Code Online (Sandbox Code Playgroud)
(但name=/var/run/mysqld/mysql.sock
改为.)
如果你有这样的错误信息,运行aa-logprof
作为root
并回答问题.有关配置AppArmor的更多信息可以在apparmor.d(5)
联机帮助页或某些各种Wiki页面中找到.