zoukankan      html  css  js  c++  java
  • 解决 LINUX mysql不能通过IP连接 只能localhost 权限没问题情况下

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

  • 相关阅读:
    [大数据从入门到放弃系列教程]在IDEA的Java项目里,配置并加入Scala,写出并运行scala的hello world
    [大数据从入门到放弃系列教程]第一个spark分析程序
    Mac配置Scala和Spark最详细过程
    Mac配置Hadoop最详细过程
    [从零开始搭网站八]CentOS使用yum安装Redis的方法
    CentOS磁盘用完的解决办法,以及Tomcat的server.xml里无引用,但是项目仍启动的问题
    Mysql 删除重复数据只保留id最小的
    bootstrap媒体查询常用写法
    Arduino Uno 在win7 64位下的驱动问题
    VS项目模板文件位置
  • 原文地址:https://www.cnblogs.com/mayi168/p/3927856.html
Copyright © 2011-2022 走看看