昨天我的代码工作正常,今天它突然只是不想连接到我的数据库.我没有更改它或代码上的设置,我也没有更新任何软件.我所做的就是:
__CODE__
我收到一条很好的异常消息说:
__CODE__
问题是:我显然没有尝试使用unix socket连接,而是使用TCP/IP.我究竟做错了什么?这里有什么我想念的吗?
谢谢你的帮助.
joh*_*nes 87
您正在使用Unix套接字.当读取"localhost"时,MySQL客户端库不会将其解释为TCP主机"localhost"并解析该名称,但使用默认的Socket位置.要在本地计算机上使用TCP,必须将其127.0.0.1用作主机名.
指定过去的使用unix_socket而不是hostDSN.用于插座的位置localhost可以在编译时或在使用PHP的一些版本中定义pdo_mysql.default_socket的php.ini.
从使用PDO连接到MySQL的PHP文档:PDO_MYSQL DNS
最后的说明说:
仅限Unix:
当主机名设置为"localhost"时,通过域套接字与服务器建立连接.如果PDO_MYSQL是针对libmysql编译的,那么套接字文件的位置是在libmysql的编译位置.如果针对mysqlnd编译PDO_MYSQL,则可以通过pdo_mysql.default_socket设置设置默认套接字.
所以为了解决这个问题,你必须在php.ini中正确配置mysql.sock的位置
找到你的mysql.sock文件.常见地点:
编辑php.ini文件并正确设置pdo_mysql.default_socket的值
重新启动Apache服务器以获取php.ini文件中的更改