我的代码昨天工作得很好,今天它突然不想连接到我的数据库。我没有更改它或代码上的任何设置,也没有更新任何软件。我所做的就是这样:
new PDO('mysql:host=localhost;port=3306;dbname=test', 'username', 'password');
我收到一条很好的异常消息:
警告: PDO::__construct(): [2002] 中没有这样的文件或目录(尝试通过 unix:///tmp/mysql.sock 连接)
问题是:我显然不是尝试使用 unix 套接字而是使用 TCP/IP 进行连接。我究竟做错了什么?我在这里缺少什么吗?
谢谢你的帮助。
您正在使用 Unix 套接字。当读取“localhost”时,MySQL 客户端库不会将其解释为 TCP 主机“localhost”并解析该名称,而是使用默认的套接字位置。要在本地计算机上使用 TCP,您必须使用127.0.0.1
作为主机名。
指定过去的使用情况unix_socket
代替host
在 DSN 中。所用插座的位置localhost
可以在编译时或在某些版本的 PHP 中使用定义pdo_mysql.default_socket
in the php.ini
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)