MySQL:无法创建 TCP/IP 套接字 (105)


MySQL: Can't create TCP/IP socket (105)

我有两个服务器(主服务器和数据库服务器)。如果从主服务器对MySQL数据库进行了太多访问,则会出现"无法创建TCP/IP套接字(105)"错误。我尝试激活/停用持久的PDO连接并将max_connections参数设置得很高,但这无济于事。导致此错误的原因是什么?

听起来您的 Web 服务器("主"服务器)的 TCP 堆栈资源不足。

可以尝试的一些方法:

  • 配置 Web 服务器以限制同时运行的客户端连接数。在 Apache 中,这是 MaxClients 参数。 http://httpd.apache.org/docs/2.0/mod/mpm_common.html#maxclients 达到限制时会发生什么?其他连接请求保存在连接/侦听队列中。
  • 检查您的 php 代码以确保您正确释放了数据库资源。在 MySQL 中,有必要实际检索结果集。一些 php 代码执行 SELECT,然后只查看 rowCount() 方法。
  • 确保不是在循环中构造 PDO 对象。
  • 使用 netstat 命令找出谁在占用端口。

尝试检查max_connect_errors参数。很可能您的主机受到攻击,或者有一些设计不良的应用程序无法连接并达到尝试限制。

哦,别忘了重新启动mysqld。

希望对您有所帮助!