mysql能用localhost连接不能使用127.0.0.1连接的解决办法
2016-06-10 11:14
856 查看
问题: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
系统环境: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
相关文章推荐
- MYSQL中UNIX时间戳与日期的转换
- join连接的五种方式的简单使用案例(Inner join,Left join,Right join,Full join,Cross join)
- Mysql系列-字符集
- JDBC连接MySQL数据库
- mysql 查询重复次数最多/最少的几条记录
- mysql查询记录,无记录 count(*)返回0,max()返回null
- Mysql5.6主从复制-基于binlog
- 数据表的修改
- Win7环境下安装MySQL5.7.13(Zip版)过程记录
- mysql 5.1,5.5,5.6 32位64位最新社区版下载地址
- 男人 就该将自己活成IPV4绝非IPV6(二)
- 树
- MySQL 事务没有提交导致锁等待
- mysql登录用户验证遇到的问题 access denied for user ‘user’@'localhost'
- mysql的主从、主主及半同步复制
- MySQL执行sql查询并上传至远程服务器
- MySql-索引优化
- MySQL体系结构
- Liunx下修改MySQL字符集
- mysql启动报错Can't read from messagefile处理