MySQL不能通过localhost或127.0.0.1连接数据库
发布:smiling 来源: PHP粉丝网 添加日期:2014-09-28 15:28:18 浏览: 评论:0
今天无事来给大家总结一下mysql连接数据库碰到的一些问题,下面最常见的mysql不能连接数据库就有不能通过localhost或127.0.0.1连接,下面我来介绍解决办法。
MySQL通过localhost无法连接数据库的解决
问题:一台服务器的PHP程序通过localhost地址无法连接数据库,但是如果设置为127.0.0.1则可以正常连接,连接其他数据库服务器也正常。MySQL的权限设置正确,且通过mysql命令行客户端可以正常连接数据库。
分析:这是典型的socket没有正确设置的情况。
连接MySQL数据库有两种方式:TCP/IP(一般理解的端口的那种)和Unix套接字(一般叫socket或者sock)。大部分情况下,可以用localhost代表本机127.0.0.1,但是在MySQL连接时,二者不可混用,而且MySQL中权限设置中localhost与127.0.0.1也是分开设置的。当设置为127.0.0.1时,系统通过TCP/IP方式连接数据库;当设置为localhost时,系统通过socket方式连接数据库。
解决:首先要看本机MySQL的socket套接字文件在哪里,查看命令是:
mysqld --verbose --help | grep socket输出结果显示套接字文件的位置,比如,这台服务器显示的是.
socket //phpfensi.com
/var/run/mysqld/mysqld.sock
然后修改php的配置文件php.ini与之对应起来就好了.
找到这一项:
mysql.default_socket =一般来说这一项都是空的,改成:
mysql.default_socket = /var/run/mysqld/mysqld.sock
这里应写上一步查询到的文件,根据你的情况设置,至此php配置就修改好了,如果是CLI(命令行)方式或者CGI方式的话,立即就生效,如果是FASTCGI方式,需要重启一下fastcgi进程.
不能使用127.0.0.1连接的解决办法
根据出错的提示信息“Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on '127.0.0.1'” 使用google搜索mysql_connect 有人说是可能mysql_connect这个函数被禁用了,使用其它的连接,测试过不行,修改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 ”,数据库连接一切正常.
Tags: MySQL 127 0 0 1连接数据库
相关文章
- ·怎样使MySQL安全以对抗解密高手(2013-11-11)
- ·MYSQL用户root密码为弱口令的攻击(2013-11-11)
- ·Mysql数据库的安全配置、实用技巧(2013-11-11)
- ·Mssql和Mysql的安全性分析(2013-11-11)
- ·MySQL安全问题的一点心得(2013-11-11)
- ·PHP常用MySql操作(2013-11-13)
- ·MySQL数据库下载漏洞攻击技术(2013-11-14)
- ·MySQL3.23.31之前版本的安全漏洞(2013-11-14)
- ·通过Mysql的语句生成后门木马的方法(2013-11-14)
- ·MySQL服务器内部安全数据目录访问(2013-11-14)
- ·MySQL数据库中的安全解决方案(2013-11-14)
- ·如何保护MySQL 中的重要数据(2013-11-14)
- ·为你的MySQL数据库加铸23道安全门(2013-11-14)
- ·Mysql的Root密码遗忘的解决办法(2013-11-14)
- ·如何开启MySQL的远程帐号(2013-11-14)
- ·我的Mysql碰到了 1067 错误(2013-11-27)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)