如何通过python连接时更改默认的Mysql连接超时?
我连接到一个MySQL数据库使用python 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 | +----------------------------+----------+
我怎样才能改变默认超时?
做:
con.query('SET GLOBAL connect_timeout=28800') con.query('SET GLOBAL wait_timeout=28800') con.query('SET GLOBAL interactive_timeout=28800')
参数含义(取自导航器中的MySQL Workbench:实例>选项文件>选项卡“networking”>“超时设置”部分)
- connect_timeout :mysqld服务器等待连接数据包的秒数,然后回复“Bad handshake”
- interactive_timeout在closures交互式连接之前服务器等待活动的秒数
- wait_timeout在closures连接之前服务器等待连接活动的秒数
顺便说一句:28800秒是8小时,所以对于10小时的执行时间,这些值应该实际上更高。
你在MySQLconfiguration文件(在mysqld部分选项connect_timeout )更改默认值 –
[mysqld] connect_timeout=100
如果这个文件不能被你访问,那么你可以使用这个语句来设置这个值 –
SET GLOBAL connect_timeout=100;
我知道这是一个古老的问题,但只是为了logging,这也可以通过将适当的连接选项作为parameter passing给_mysql.connect
调用来完成。 例如,
con = _mysql.connect(host='localhost', user='dell-pc', passwd='', db='test', connect_timeout=1000)
注意使用关键字参数(主机,密码等)。 他们提高了你的代码的可读性。
有关可以传递给_mysql.connect
不同参数的详细信息,请参阅MySQLdb API文档
打开phpmyadmin>设置>function,然后进入“logincookie有效性”默认为1440秒