【发布时间】:2019-01-11 23:59:15
【问题描述】:
我刚刚对 PHP 7.2.8 和 MySQL 8.0.12 做了一个brew upgrade。在此之后,尝试从 PHP 脚本(来自 Bash)连接到 MySQL 在 10 秒后超时(默认的 MySQL 超时值)。
new PDO("mysql:host=localhost;dbname=foo;charset=utf8", "user", "pass");
[2006] MySQL server has gone away
我的环境中的一切似乎都很正常。我的设置中没有更改任何其他内容。从 Bash 连接到 MySQL 工作正常。如何从 PHP 重新获得 MySQL 访问权限?
$ php -i | grep php.ini
Configuration File (php.ini) Path => /usr/local/etc/php/7.2
Loaded Configuration File => /usr/local/etc/php/7.2/php.ini
$ tail /usr/local/etc/php/7.2/php.ini
mysql.default_socket = /tmp/mysql.sock
pdo_mysql.default_socket = /tmp/mysql.sock
$ ls /tmp/mysql*
srwxrwxrwx 0 /tmp/mysql.sock
-rw------- 5 /tmp/mysql.sock.lock
srwxrwxrwx 0 /tmp/mysqlx.sock
-rw------- 6 /tmp/mysqlx.sock.lock
$ mysql
Welcome to the MySQL monitor.
mysql> show variables like '%socket%';
+-----------------------------------------+------------------+
| mysqlx_socket | /tmp/mysqlx.sock |
| socket | /tmp/mysql.sock |
+-----------------------------------------+------------------+
【问题讨论】: