出现的问题:一个装有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的详细说明,留下备查!
posted on 2012-09-09 16:02
零全零美 阅读(3472)
评论(1) 编辑 收藏 所属分类:
ubuntu