关于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 //phpfensi.com
结果还是一样,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了.
MySQL利用localhost无法连接问题解决办法(127.0.0.1能连接),最保守的方法就是先执行 sync 命令进行数据写入,然后重启apache2服务器,一般来说,不用执行这两个命令也行的,本人已经直接使用,不能再做测试. |