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

来源:未知 责任编辑:责任编辑 发表时间:2013-11-18 20:57 点击:

 

 

最近朋友的一个服务器出现了一个奇怪的问题,弄了两个星期没有解决,在哥坚持不懈的努力下,终于解决了问题。发出来给需要的朋友。

问题: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

 

 

摘自 独自等待博客:http://www.waitalone.cn/ 原文地址:http://www.waitalone.cn/post/mysqlselinux.html  

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • mysql-mmm
    • mysqldump命令——MySQL数据库备份还原
    • Oracle数据导入MySQL的快捷工具:MySQL Migration Toolkit
    • 简简单单储存过程——循环一个select结果集
    • MySQL数据库十大优化技巧
    • Mysql安装笔记
    • Mysql主主复制架构配置
    • Mysql的Procedure 参数为NULL问题分析
    • MySQL Stmt预处理提高效率问题的小研究
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1