php 连接mysql 主机 localhost,显示 No such file or directory

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php 连接mysql 主机 localhost,显示 No such file or directory脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

打开 PHP.ini文件,找到这1行

MysqL.default_socket

然后将它修改

MysqL.default_socket=/path/to/MysqL.sock

/path/to/MysqL.sockMysqL配置文件/etc/my.cnf中的socket的路径

如我当前虚拟机中的MysqL 配置文件/etc/my.cnfsocket = /tmp/MysqL.sock,所以修改PHP.ini中找到的MysqL.default_socket =改为MysqL.default_socket = /tmp/MysqL.sock,然后重启 apache,使配置生效

系统:ubuntu 16.04
环境: Apache 2.4 + PHP 5.6.40 + MysqL 5.5.31

PHP连接MysqL demo代码:

$conn = MysqL_connect('localhost','root','secret');

if(!$conn){
    die(MysqL_error());
}

echo "success";

主机使用localhost显示No such file or directory错误。改为127.0.0.1之后可以连接成功。

前提: 我的MysqL配置文件 /etc/my.cnf[MysqLd]节点下的配置项 socket = /tmp/MysqL.sock

终端命令(用来查看 PHP 信息中MysqL.default_socket的配置情况):

PHP -i | grep MysqL.default_socket

运行结果:

MysqL.default_socket => no value => no value
pdo_MysqL.default_socket => /VAR/run/MysqLd/MysqLd.sock => /var/run/MysqLd/MysqLd.sock

PHP.ini中MysqL.default_socket认路径和当前运行MysqL 配置文件中的socket的值/tmp/MysqL.sock 不相等

我的LamP环境中PHP.ini文件有2个,路径分别是:/etc/PHP/5.6/cli/PHP.ini/etc/PHP/5.6/apache2/PHP.ini

将上面2个PHP.ini文件MysqL.default_socket =修改MysqL.default_socket = /tmp/MysqL.sock,然后重启apache2

终端命令:

sudo service apache2 stop # 停止apache
sudo service apache2 start # 启动apache

再次查看 MysqL.default_socket的配置是否生效

终端命令:

PHP -i | grep MysqL.default_socket

运行结果:

MysqL.default_socket => /tmp/MysqL.sock => /tmp/MysqL.sock
pdo_MysqL.default_socket => /tmp/MysqL.sock => /tmp/MysqL.sock

配置成功,然后通过浏览器,访问带有上面 PHP连接MysqL demo代码文件,运行结果为success.

Reference
  1. MySQL connection not working: 2002 No such file or directory

脚本宝典总结

以上是脚本宝典为你收集整理的php 连接mysql 主机 localhost,显示 No such file or directory全部内容,希望文章能够帮你解决php 连接mysql 主机 localhost,显示 No such file or directory所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。