我的网站一直在显示与数据库有关的错误。
错误说 – 警告:mysql_connect()[function.mysql连接]:第2行/home/host1/public_html/www.mysite.com/db_connection.php中的连接太多。不能连接错误。连接太多。
我偶尔会得到错误,但是当我刷新页面20秒后说错误消失,页面正常显示。 我试图通过在页面加载完成后closuressql连接来解决这个问题。 但即使在这之后,我得到了这个错误。 你能告诉我们什么可能是错的。 这是服务器问题,还是它与我的代码?
几件事情检查:
你使用mysql_pconnect来连接数据库吗? 这将build立一个持久连接,一旦build立就保持打开状态,并且将重新使用该连接,而不是每次都创build一个新的数据库连接。
还要检查my.cnf文件中的max_connections和max_user_connections,因为您可能会达到这两个variables的限制。
如果你运行这个查询:
SHOW PROCESSLIST;
你会看到现在所有的连接,以及他们在做什么。 这应该给你一个更好的主意,什么是持有的东西。 随着时间的推移,连接可能会卡住,他们可能会坐在那里很长一段时间。 更可能的是,你有一个黑客脚本(或脚本写得不好,导致大量的锁)。
你可能没有closures你的PHP脚本的连接。 使用明确closures连接的mysql_close() 。 将mysql_close()与mysql_connect()一起使用将确保连接closures。
如果在查询完成后成功closures连接,则尝试在my.cnf中使用max_connections。
MySQLpipe理员在他们的GUI工具包可能会给你一个想法正在发生的事情。