零全零美(www.zzgwt.com)
生活中的很多事情,并不像If...Else那么简单!
posts - 96,comments - 52,trackbacks - 0
出现的问题:一个装有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

FeedBack:
# re: SELinux学习(1):Can't connect to MySQL server on 'ip' (13) 的解决方案
2012-09-09 16:16 | 台式万用表
没玩过这东西啊呵呵  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: