Can't connect to MySQL server on '*' (13) 的解决方案

来源:互联网 发布:数控线切割编程100例 编辑:程序博客网 时间:2024/06/10 09:24
SELinux学习(1):Can't connect to MySQL server on 'ip' (13) 的解决方案
出现的问题:一个装有CentOs的VPS不知道为什么重启之后,出现网站无法连接数据库的现象:
Can't connect to MySQL server on 'www.zzgwt.com' (13)
此处域名也可以使IP,我习惯用域名直接连接数据库,因为重新解析域名后,不用再修改数据库配置了。但是本地通过数据库管理工具如:Navicat for MySql却是能够正常连接!
网上查了很多文章,发现又是SELinux(Linux上的强制访问控制安全模块)惹得祸,很想关闭它,但是据说他是系统被攻破后的最后一道防线,那就暂时记录此类问题的解决方案,以后有时间的话,好好研究一下这个SELinux!

此问题的原因是SELinux阻止httpd进程--httpd_can_network_connect_db 连接数据库--不管是哪种类型的数据库。

使用getsebool 查看此选项的状态

# /usr/sbin/getsebool httpd_can_network_connect_db

httpd_can_network_connect_db --> off


使用setsebool命令改变该布尔变量的状态,从而使得httpd进程能够访问数据库服务器:

#/usr/sbin/setsebool httpd_can_network_connect_db on

改变成功后,可以继续使用getsebool命令进行查看:

#/usr/sbin/getsebool httpd_can_network_connect_db


上述状态改变只是暂时性的,一旦系统重启,该变量状态将改变回初始状态,因此,可以使用如下命令永久性改变状态:

#/usr/sbin/setsebool -P httpd_can_network_connect_db on


如需关闭SELinux则可以执行以下操作
修改/etc/selinux/config SELINUX=enforcing 为 SELINUX=disabled

http://www.e800.com.cn/articles/2012/0114/501693_3.shtml 此网站有关于SELinux的详细说明,留下备查!






2..ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)










0 0