6

当我登录到我的命令行 mysql 时,我无法再访问任何需要数据库连接的 PHP 应用程序。每次都会发生这种情况。在我的本地主机上引起问题的步骤:

Command line:
mysql -u root (no password for localhost)
mysql> 

在这一点上,我不执行或做任何事情。我使用 root 加载任何需要数据库连接的页面:

PDO::__construct(): send of 108 bytes failed with errno=32 Broken pipe

如果我退出 mysql,页面会返回,但在尝试同时加载两个页面(在浏览器选项卡中)时会出现另一个问题,这将导致其中一个页面中断,直到页面加载,然后我可以刷新

My.cnf:

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

wait_timeout=5000
max_allowed_packet=100m
max_user_connections=1000
4

2 回答 2

1

wait_timeout在你的 MySQLmy.cnf配置文件中设置:

wait_timeout=3600

此配置文件位于/etc/mysql/my.cnf(Ubuntu/Debian) 和/usr/local/mysql/my.cnf(OSX) 以及/location of server bin folder/mysql/my.cnfwindows 中。

重新启动 MySQL 服务器并检查这是否可以正常工作。

于 2017-12-13T06:32:58.420 回答
1

对于“Send of X bytes failed with errno=32 Broken pipe”,互联网上的大多数回复都会建议您增加连接的 wait_timeout。这对我们不起作用。

但是在挣扎了一段时间之后,我们有点疯狂地猜测可能是 max_allowed_pa​​cket 需要增加。事实上,将它提升到 500M 确实做得很好。

只有在它已经工作之后,我们才发现其他人也有类似的经历(例如https://www.somacon.com/p574.php

于 2022-02-09T07:51:11.013 回答