Mysql - Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13)刚搞定Apache,mySQL又出问题了。问题现象:本机用mysql命令可以正常登录数据库并正常操作。但是在php写的页面中,不管怎样,连接mySQL数据库时,都会报如下错误:Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13)问题原因:查看mysql.sock文件,存在并且任何人都可读可写。发现avc message (/var/log/messages)中同样有策略错误的记录。用 ps -efZ|grep mysql 命令检查mysql的进程,发现mySQL使用了unconfined_t 这个未定义策略类型在运行,而mysql.sock以及mysqld文件的策略类型都是var_lib_t。很明显,这应该是个Fedora Core 3 的 BUG,SELinux target policy的BUG,redhat并没有为mySQL制定正确的target policy。解决办法:到redhat的bugzilla系统上搜索,果然找到了这个BUG。 Bug #:  138421 
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=138421在这个页面找到新的target policy的补丁安装即可补丁下载页面:
ftp://people.redhat.com/dwalsh/SELinux/FC3
你也可以从本文的附件中下载只要下载
selinux-policy-targeted-1.17.30-2.23以上的版本就能正常使用mySQL了。如果你原来的系统安装了 selinux-policy-targeted-source (源代码),那么你也必需下载source的rpm文件,并首先升级这个包,因为两个包有依赖关系。补丁安装办法:使用root用户。先升级新的target-policy-source (如果你之前安装了这个包的话)
# rpm -Uvh selinux-policy-targeted-sources-1.17.30-2.61.noarch.rpm升级新的target-policy
# rpm -Uvh selinux-policy-targeted-1.17.30-2.61.noarch.rpm更新mysql相关的target policy
# rpm -q -l mysql-server | restorecon -R -v -f -
# rpm -q -l mysql | restorecon -R -v -f -重起mysql的服务
# service mysqld restart试一下吧,一定有效 ;)