我越来越
'PDO连接错误:SQLSTATE [HY000] [2002]无法通过套接字'/var/run/mysqld/mysqld.sock'连接到本地MySQL服务器'
错误,当我试图做太多的更新和插入。 更新太多,我的意思是每分钟20k-30k的交易。 例如,当我尝试对表中的10k条logging进行批处理时,我开始出现这个错误。
我在serverfault和MySQL的参考文档search,我发现,无效的袜子文件的位置或向下mysql服务器可以导致这个错误,但我的袜子文件path是真实的,MySQL服务器是起来的。 因为通常,我可以连接到MySQL并运行查询。
可以连接限制导致这个错误? 我目前的max_connectionsvariables值是151,这对于每分钟10k个事务来说是不够的。 但据我所知,当打开太多的连接到MySQL,它给出了太多的连接错误,不能通过套接字错误连接。
我改变了,我的应用程序使用mysql_pconnect而不是mysql_connect。 我不知道当我尝试运行cron job来处理10k条logging时会发生什么。
你有什么主意吗? 如果我找不到这个问题的答案,我将尝试使用32 GB RAM和4-8个处理器为MySQL创build一个大型机器,并尝试使用此设置。
当这种情况发生时,您的系统是否显示缓慢或滞后的迹象? 如果是这样,一个更强大的机器将有所帮助。 如果不是的话,那么可能有一些默认的防护措施可以防止一连串的请求。
看到这个错误的更多信息:
http://bugs.mysql.com/bug.php?id=10525
重要的是,提高mysql通过设置排队“回日志”请求的能力
back_log = 1000
在[mysqld]部分下的/etc/mysql/my.cnf文件中(并重新启动mysql)。
其次,在linux下也提高了同样的限制:
sudo sysctl -w net.core.somaxconn=1024
不要忘记编辑/etc/sysctl.conf并添加
net.core.somaxconn=1024
如果这解决了你的问题,否则它会回到下一个重新启动!
这可能是SQL处理本地主机回送的问题。 尝试连接到127.0.0.1或服务器的内部IP。