关于MySQL通过localhost无法连接127.0.0.1可以连接的问题

关于MySQL通过localhost无法连接127.0.0.1可以连接的问题>>>在CentOS6.3 X64上新编译安装的MariaDB数据库,编译安装需要相当长的一段时间,如果你的机器不是很好的话。安装后使用探针进行PHPINFO测试的时候。发现默认的localhost不能连接MariaDB数据库,但是通过127.0.0.1又可以连接。表示很郁闷。最初想到的是:是不是linux服务器上的hosts文件问题。于是就 echo “127.0.0.1 localhost”>>/etc/hosts && sync 结果还是一样,localhost无法连接127.0.0.1可以连接。 在网上看到有朋友说是selinux的问题,但,一般系统安装好了后我都是已经将selinux 设置为permissive 模式的。于是有进一步设置 为disabled模式。结果也是一样。 最后发现是PHP和MySQL之间的关系,我们只要修改PHP.INI的配置就可以了。 默认编译安装的php.ini配置文件里不会指定 mysqld.sock 文件地址,而其便从默认以为的在/var/run/mysqld/mysqld.sock 进行查找。而编译安装的MariaDB 安装的时候将mysqld.sock文件制定在/usr/local/mysql/tmp目录下。而PHP通过localhost连接mysql的时候恰恰又是要使用mysqld.sock的方式进行连接。因此,上面问题的出现我们就清楚来路的。 下面我们通过查看本机的mysqld.sock文件具体存放位置,将其写入php.ini的配置里面就ok了。

echo sock to phpini

最保守的方法就是先执行 sync 命令进行数据写入。然后重启apache2服务器。一般来说,不用执行这两个命令也行的。本人已经直接使用,不能再做测试。

相关阅读RelatedRead

巧用Windows自带portproxy远程直接连接Hyper-V里Linux虚拟机

用linux系统格式化windows能识别的fat32分区

Windows Azure云基于CentOS的OpenLogic

Nginx编译安装之自定义google_perftools not found

Nginx1.4.7已经发布,Nginx1.4.6平滑升级

Linux下编译安装OpenSSL

CentOS6.4下编译安装MariaDB数据库

11 条评论添加评论

哎,以前看这篇文章没啥感觉,不过上次无法连接到数据库的时候, 最好查了好多东西,解决后,现在看,有感觉哈。。

回复取消回复
@Era

什么感觉呐?是不是直接就是PHP.INI配置问题呀?

回复取消回复

原来只需要修改php.ini就能解决了

回复取消回复
@专五十

是的。遇到过这个问题。确实可以解决的。

回复取消回复

在研究linux的东西啊。。。

回复取消回复
@Era

嗯。是啊,一直都是linux的啊 ,很少碰windows。感觉离windows服务器已经越来越远了。

回复取消回复

新的一周,祝充满能量,开心面对每一天!

回复取消回复