一、数据库连接失败的情况
- 数据库服务没有正常运行或者服务器已经卡死;
- 账号没有权限或者配置文件绑定了连接IP地址;
- 服务器防火墙iptables没有开放端口;
- 服务器防火墙selinux没有开放httpd服务连接数据库权限。
二、查找解决数据库服务失败的原因
说明:以下解决方法在linux中处理,windows中查找方法类似
- 登录服务器查看服务器是否有报错信息以及内存用量是否已经用完
#free –m
- 通过以下命令检查现有开机启动的项目
检查Mysqld服务开机启动是否正常,如果在中途有重启过服务器,并且没有设置mysqld为开机服务器自启动,可能导致连接数据库失败。
#chkconfig –list |grep mysqld
- 检查现有运行服务中是否有mysqld
#pstree
- 查看配置文件是否指定或者绑定了访问的IP地址
在社区版本5.1版本之后,配置文件中一般不会默认存在绑定IP地址的配置,之前在ubuntu的mysql配置文件中有存在过类似语句。如果有可以删除或者注释该语句。
- 防火墙iptables状态检查
#service iptables status
- 检查selinux运行状态
# sestatus –v
- 检查selinux中httpd服务权限
#getsebool -a | grep httpd
其中有一项 httpd_can_network_connect_db –> off 为关闭状态,现在我们将其开起来,完成之后在selinux上允许链接数据库:
#/usr/sbin/setsebool -P httpd_can_network_connect_db on
- 终极大招:重启服务器
以上完成之后,一般情况如果还是不行,将数据库服务器重启一下,可以再检查服务器错误日志文件记录的内容,查找是否有其他原因导致服务启动失败。