MysqL.default_socket
然后将它修改为
MysqL.default_socket=/path/to/MysqL.sock
/path/to/MysqL.sock
是MysqL的配置文件/etc/my.cnf
中的socket
的路径
如我当前虚拟机中的MysqL 配置文件/etc/my.cnf
的socket = /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
$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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。