尽管httpd上没有用户,但我的数据库似乎有许多打开的连接。
mysql> SHOW PROCESSLIST;
+-------+----------+--------------------+---------------------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-------+----------+-----
我的数据库似乎有许多打开的连接,尽管在httpd上没有用户。
mysql> SHOW PROCESSLIST;
+-------+----------+--------------------+---------------------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-------+----------+-----
我在mysql上使用Django,有太多连接的问题。
我从命令行运行python脚本,但集成了Django模型来检查数据库中的数据。该脚本每30秒运行一次,我使用线程来控制它。My_function是检查数据库状态的函数。
while True:
now = time.time()
if now < next:
time.sleep(next - now)
t = Thread(target=my_function,)
t.start()# start a thread
next += interval
问
我们的TYPO3应用程序遇到停机问题,日志显示错误:
Core: Exception handler (WEB): Uncaught TYPO3 Exception: An exception occured in driver: Too many connections
如果我连接到MySQL数据库并运行SHOW PROCESSLIST,我所看到的就是与命令“Sleep”的大量连接。对我来说,这似乎是一个危险的信号,但这并不是我的专业领域;这是否有一个很好的理由,如果不是的话,解决办法可能是什么?
我正在运行一个基于PHP/MySQL的web服务,最近注意到了一个奇怪的问题。
当我通过SSH终端运行"show full processlist;“SQL命令时,我注意到几个”休眠“连接:
| Id | User | Host | db | Command | Time | State | Info |
+-----------+---------+-----------+---------+---------+------+-------+-----------------------+
| 21812128
我使用的是Tomcat6.0.29,带有Tomcat7的连接池和MySQL。测试我的应用程序时,它没有重用池中的任何东西,但最终创建了一个新的池,最终导致我无法使用数据库,因为当池的最大活动大小设置为20时,池中有数百个休眠连接。
请参考此处:
+----+------+-----------------+--------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-
正如我在Golang中所理解的:the DB handle is meant to be long-lived and shared between many goroutines。
但是当我在AWS中使用Golang时,这是一个完全不同的故事,因为lambdas在功能完成后就停止了它的功能。
我在Lambda函数中使用:defer db.Close(),但它不受影响。在MySQL上,它仍然将这种连接保持为Sleep query。因此,它会导致too many connections on MySQL。
目前,我必须将wait_timeout在MySQL中设置为小数目。但在我看来,这不是最好的
我有大量的连接,但是当我发布一个显示完整的处理列表时,我并没有显示任何与我看到的连接非常接近的内容。这些亲戚是某种孤儿吗?我尝试了刷新主机命令,即使重新启动了服务器,也重新启动了mysql服务器,连接也保持不变。
我相信这些连接会导致与数据库建立新连接的问题。用户正在收到一个“服务器消失”错误。我该怎么清理这些?
见以下命令:
mysql> show status like '%onn%';
+--------------------------+-------+
| Variable_name | Value |
+----------------
我已经在LAN中的不同机器上移动了mysql服务器,16核,8GB RAM和同样可怕的结果。在负载测试期间,一切都进行得很好,直到300秒左右。从DB的客户端到DB有15个持久连接,在这段时间之后,我可以看到它变得平坦了:
突然间,发送给它的所有查询都开始超时:
mysql> show processlist;
+-----+-------------+--------------------+----------+---------+------+-------+------------------+
| Id | User | Host |
我的mysql服务器不时会遇到“太多连接”错误。我认为问题的一部分是大量正在运行的sleep进程,有些超过1000秒。
在调查这个问题时,我看到了这并进行了调查。我检查我的超时值
show variables like "%timeout";
interactive_timeout和wait_timeout都设置为600。
如果这些睡眠过程应该在600点停止,那么它们为什么会运行这么长时间呢?
我正在与我的MySQL流程中的“太多连接”问题作斗争,我已经到了mysqladmin processlist -uroot -pXXXXX导致以下结果的地步:
+------+------------+-----------+------------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+------+------------+-----------+-----
当我运行命令时,我得到了连接到服务器的详细信息。下面是我的MySQL服务器的连接细节,
mysql> show processlist;
+------+-----------------+----------------------+-------------+---------+----------+------------------------+------------------+
| Id | User | Host | db | Command | Time | State
由于某些原因,与本地数据库的连接处于休眠状态,即使数据库实际上没有执行任何操作:
mysql> SHOW FULL PROCESSLIST;
+-----+------+-----------+-----+---------+------+-------+-----------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-----+------+-----------+-----+---------+------+-------+-----
我的Node.js代码如下所示
CODE1:下图
var http=require('http');
var MySQL = require('mysql');
mysql = MySQL.createConnection(...)
http.createServer(function(req, res){
// the query will take several seconds
mysql.query("SELECT SLEEP(1)", function....)
});
http.listen(...);
问题是当我
我在用
def mysql_handling(string):
global cursor
while True:
try:
cursor.execute(string)
if 'SELECT' not in string:
db.commit()
break
except MySQLdb.MySQLError:
cursor.close()
print '
我正在使用连接到mysql数据库的datamapper在sinatra应用程序上工作,并且在仅从一个特定表中检索/查找记录时遇到问题。我可以使用datamapper find插入到其中,但是当我尝试执行@ Sleep_Log.all =ArgumentError时,我得到了以下错误:sleepEntries: argument out range。当我把所有东西都加载到irb中时,我得到了同样的错误。我还打开了查看查询的功能,当我调用timestamp时,我从sleep_logs ORDER BY id返回SELECT id,start_time,length,timestamp。当我通过my