PHP教程

MYSQL: PHP无法连接远程mysql的原因

本文主要是介绍MYSQL: PHP无法连接远程mysql的原因,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

声明:本文为转载内容,原文信息如下:

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

原文作者:feng2375

原文地址:https://blog.csdn.net/feng2375/article/details/7354045

 

 

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

feng2375 2012-03-14 17:56:14  5682  收藏 分类专栏: linux 文章标签: mysql php networking centos google 测试   linux专栏收录该内容 26 篇文章0 订阅 订阅专栏

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

系统环境:centos5.5 64位系统  mysql 版本 5.0.77 php版本 5.2.17

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

1、根据出错的提示信息“Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on '127.0.0.1'”  使用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

 

 

总结:(我的操作系统:centos8.4)PHP无法连接远程的mysql原因是,selinux阻碍了php连接远程mysql,关闭selinux即可。关闭selinux的方法:[root@centos test]# vim /etc/selinux/config  , SELINUX=disabled  。

 

 

 

这篇关于MYSQL: PHP无法连接远程mysql的原因的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!