# CentOs的VPS

**URL:** <https://www.isharkfly.com/t/centos-vps/10561>\
**Category:** DevOps\
**Created:** [December 5, 2013, 4:01pm UTC](https://www.isharkfly.com/t/centos-vps/10561 "2013-12-05T16:01:18Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![honeymoose](https://www.isharkfly.com/user_avatar/www.isharkfly.com/honeymoose/32/20796_2.png) [@honeymoose](https://www.isharkfly.com/u/honeymoose)\
**Post date:** [December 5, 2013, 4:01pm UTC](https://www.isharkfly.com/t/centos-vps/10561/1 "2013-12-05T16:01:18Z")

</div>

出现的问题：一个装有CentOs的VPS不知道为什么重启之后，出现网站无法连接数据库的现象：`Can't connect to MySQL server (13)`此处域名也可以使IP，我习惯用域名直接连接数据库，因为重新解析域名后，不用再修改数据库配置了。但是本地通过数据库管理工具如：Navicat for MySql却是能够正常连接！

网上查了很多文章，发现又是SELinux（Linux上的强制访问控制安全模块）惹得祸，很想关闭它，但是据说他是系统被攻破后的最后一道防线，那就暂时记录此类问题的解决方案，以后有时间的话，好好研究一下这个SELinux！

此问题的原因是SELinux阻止httpd进程–httpd\_can\_network\_connect\_db 连接数据库–不管是哪种类型的数据库。

使用getsebool 查看此选项的状态[code]# /usr/sbin/getsebool httpd\_can\_network\_connect\_db

httpd\_can\_network\_connect\_db → off[/code]使用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`
