解决编译安装的PHP无法通过localhost连接mysql的问题
2017-04-10 09:55
1076 查看
首先搞清楚mysql之连接localhost与127.0.0.1的区别:
127.0.0.1属于TCP/IP连接,是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。localhot属于Unix socket方式连接,是不经网卡传输!它不会解析成 IP,不受网络防火墙和网卡相关的的限制,也不会占用网卡、网络资源。一般设置程序时本地服务用localhost是最好的。
我的操作系统php使用127.0.0.1却能连接mysql:
但无法通过localhost连接mysql:
尝试phpmyadmin也遇到同样的错误,不过也出现比较有价值的错误提示(套接字没有正确设置):
这里说套接字指的是php跟mysql通信的一个.sock文件。
分析一下问题:
我的mysql使用的是mariadb5.5,通过yum安装,所以问题出在mysql本身的可能性几乎没有。
通过phpinfo查找socket关键字,可以发现mysql.default_socket没有设置默认值,而pdo_mysql给出了默认值,sock的位置
编辑php.ini给予mysql.default_socket默认路径,并且跟mysql的套接字文件存放路径对应按理就能解决问题。不过还有个偷懒的办法,把mysql的套接字文件在php指定的默认路径创建软连接,就无需修改php.ini了。
查看mysql套接字路径:
# cat /etc/my.cnf
创建软连接:
# ln -s /var/lib/mysql/mysql.sock /tmp
问题解决:
127.0.0.1属于TCP/IP连接,是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。localhot属于Unix socket方式连接,是不经网卡传输!它不会解析成 IP,不受网络防火墙和网卡相关的的限制,也不会占用网卡、网络资源。一般设置程序时本地服务用localhost是最好的。
我的操作系统php使用127.0.0.1却能连接mysql:
但无法通过localhost连接mysql:
尝试phpmyadmin也遇到同样的错误,不过也出现比较有价值的错误提示(套接字没有正确设置):
这里说套接字指的是php跟mysql通信的一个.sock文件。
分析一下问题:
我的mysql使用的是mariadb5.5,通过yum安装,所以问题出在mysql本身的可能性几乎没有。
通过phpinfo查找socket关键字,可以发现mysql.default_socket没有设置默认值,而pdo_mysql给出了默认值,sock的位置
编辑php.ini给予mysql.default_socket默认路径,并且跟mysql的套接字文件存放路径对应按理就能解决问题。不过还有个偷懒的办法,把mysql的套接字文件在php指定的默认路径创建软连接,就无需修改php.ini了。
查看mysql套接字路径:
# cat /etc/my.cnf
创建软连接:
# ln -s /var/lib/mysql/mysql.sock /tmp
问题解决:
相关文章推荐
- 完美解决MySQL通过localhost无法连接数据库的问题
- MySQL通过localhost无法连接数据库的解决
- 解决Linux环境下安装xampp之后外部无法连接MySQL的问题
- MySQL通过localhost无法连接数据库的解决
- Ubuntu通过apt-get install安装mysql后pdo_mysql无法连接的解决方法
- 源码编译安装PHP和Apache(解决php通过yum安装版本低的问题)
- Linux下通过yum来安装 mysql 5.1,以及以前的旧版本(因服务器网络问题,安装后无法连接,无法验证正确性)
- 阿里云ECS安装MySQL通过yum安装,rpm源码安装,navicat for mysql 无法远程连接解决办法 包括Tomcat,Nginx无法远程访问等
- IPv6设置后如何解决MySQL无法连接localhost的问题
- 安装PHP可能遇到的问题“无法载入mysql扩展” 的解决方法
- 安装PHP可能遇到的问题“无法载入mysql扩展” 的解决方法
- Mac os 解决无法使用localhost连接mysql问题
- php无法连接mysql问题解决方法总结
- 解决树莓派安装mysql后外部无法连接问题
- IPv6设置后如何解决MySQL无法连接localhost的问题
- LNMP一键包安装后解决MySQL无法远程连接问题
- Mac os 解决无法使用localhost连接mysql问题
- centos下mysql无法通过localhost连接却可以通过127.0.0.1连接的问题
- 完美解决MySQL安装后无法远程连接的问题
- IPv6设置后如何解决MySQL无法连接localhost的问题