mysql能用localhost连接不能使用127.0.0.1连接的解决办法

问题:php程序连接mysql只能使用localhost,不能使用127.0.0.1

系统环境:centos5.6 64位系统  mysql 版本5.6.29 php版本5.6.22

以下为我解决问题的过程:

1、根据出错的提示信息“sqlstate hy000 2002 Permission denied”  使用google搜索mysql_connect 有人说是可能mysql_connect这个函数被禁用了,使用其它的连接,测试过不行。

2、使用google搜索mysql能用localhost连接,不能使用127.0.0.1连接,结果大部分人的解决办法是:

修改my.cnf文件,去掉skip_networking,bind_address=127.0.0.1,重启mysql 故障依旧。 

权限问题,grant all privileges on *.* to 'root'@'127.0.0.1' identified by '密码';   然后flush privileges;  故障依旧。

修改/etc/hosts文件,添加127.0.0.1  localhost 项,故障依旧。

3、查看apache错误日志,发现只记录了文件不存在之类的日志信息,未发现和访问mysql数据连接文件相关的项目。

4、查看mysql的日志,未发现相关的连接项目。

5、最后我想起来要查看一下系统日志/var/log/messages 信息太多,清理之:  echo "" > /val/log/messages 然后访问 数据连接测试文件。发现了如下信息:

Nov 30 10:18:49 localhost setroubleshoot: SELinux 正在阻止http 守护进程连接到网络端口3306 For complete SELinux messages. run sealert -l a214e214-c710-4c84-9eb

2-12764f4b27de

结果就很明显了,是selinux闯的祸,关闭selinux测试一下“/usr/sbin/setenforce 0 立刻关闭SELINUX  ”  数据库连接一切正常。

最后得出一个结论,请大家在安装服务器的时候,一定要selinux给关闭掉。下面给出方法:

如何关闭SeLinux

1、快速关闭SElinux,使用如下命令就可以:

/usr/sbin/setenforce 0 立刻关闭SELINUX

/usr/sbin/setenforce 1 立刻启用SELINUX

2、加到系统默认启动里面

echo "/usr/sbin/setenforce 0" >> /etc/rc.local

3、可以编辑配置文件达到同样的目的

vi /etc/selinux/conf

set SELINUX=disabled

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JAIR_FOREVER

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值