Ani*_*dey 54 python mysql corpus
我使用python连接到一个mysql数据库con = _mysql.connect('localhost', 'dell-pc', '', 'test')
我写的程序需要花费大量时间才能完全执行,即大约10个小时.实际上,我试图从语料库中读出不同的词.阅读完成后出现超时错误.
我检查了Mysql的默认超时时间:
+----------------------------+----------+
| Variable_name | Value |
+----------------------------+----------+
| connect_timeout | 10 |
| delayed_insert_timeout | 300 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 28800 |
| lock_wait_timeout | 31536000 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| wait_timeout | 28800 |
+----------------------------+----------+
Run Code Online (Sandbox Code Playgroud)
如何更改默认超时?
Ive*_*lin 57
做:
con.query('SET GLOBAL connect_timeout=28800')
con.query('SET GLOBAL wait_timeout=28800')
con.query('SET GLOBAL interactive_timeout=28800')
Run Code Online (Sandbox Code Playgroud)
参数含义(取自导航器中的MySQL Workbench:实例>选项文件>选项卡"网络">"超时设置"部分)
BTW:28800秒是8小时,因此对于10小时的执行时间,这些值应该实际更高.
Dev*_*art 50
你在MySQL配置文件(选项更改默认值connect_timeout在mysqld的部分) -
[mysqld]
connect_timeout=100
Run Code Online (Sandbox Code Playgroud)
如果您无法访问此文件,则可以使用此语句设置此值 -
SET GLOBAL connect_timeout=100;
Run Code Online (Sandbox Code Playgroud)
nsa*_*ane 13
我知道这是一个老问题,但只是为了记录,这也可以通过将适当的连接选项作为参数传递给_mysql.connect
调用来完成.例如,
con = _mysql.connect(host='localhost', user='dell-pc', passwd='', db='test',
connect_timeout=1000)
Run Code Online (Sandbox Code Playgroud)
注意使用关键字参数(host,passwd等).它们提高了代码的可读性.
有关可以传递给的不同参数的详细信息_mysql.connect
,请参阅MySQLdb API文档
小智 7
MAX_EXECUTION_TIME 也是长时间运行查询的重要参数。适用于 MySQL 5.7 或更高版本。
检查当前值
SELECT @@GLOBAL.MAX_EXECUTION_TIME, @@SESSION.MAX_EXECUTION_TIME;
Run Code Online (Sandbox Code Playgroud)
然后根据您的需要进行设置。
SET SESSION MAX_EXECUTION_TIME=2000;
SET GLOBAL MAX_EXECUTION_TIME=2000;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
251288 次 |
最近记录: |