我使用python con = _mysql.connect('localhost', 'dell-pc', '', 'test')连接到了一个mysql数据库

我判断了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 interactive_timeout=28800')
con.query('SET GLOBAL wait_timeout=28800')

参数含义(取自Navigator:Instance>;Options File>;选项卡"网络"部分"超时设置"中的MySQL Workbench)

  • connect_timeout:mysqld服务器在响应"错误握手"之前等待连接数据包的秒数
  • 服务器在关闭交互连接之前等待活动的interactive_timeout秒数
  • 服务器在关闭连接之前等待连接活动的wait_timeout秒数

顺便说一句:28800秒是8小时,所以对于10小时的执行时间,这些值实际上应该更高.

Mysql相关问答推荐

返回50%的随机结果

在MySQL中从非连续数据创建时间线

用于将重复行的唯一列值作为单独列获取的SQL查询

使用MySQL工作台导出具有数据的数据库表并导入到其字段具有不同数据类型的同一表中

生成json数据并根据特定表的匹配条件进行过滤

将 JSON 类型的列与特定字符串值进行比较

数据导入和默认目标架构空列表. (Mysql 工作台 8)

MySQL - 如何查询涉及前面计算值的表结果

如何获取从开始时间到结束时间的所有正在运行的作业(job)的总和?

SQL / MySQL:如何在WHERE IN中判断类似于OR的AND逻辑

MYSQL REGEXP_REPLACE 在数字之后

根据使用 mysql 的第一个过滤结果添加更多表行

如何在 MYSQL 中使用多个表进行插值

MySQL查询根据同一表中其他字段的值更新表中的字段

mysql从另一个表中 Select 不相等的值

如何使用nodejs从mysql数据库中获取最新的10条记录?

MySQL - 表'my_table'没有被锁定表锁定

警告:mysqli_connect(): (HY000/1045): Access denied for user 'username'@'localhost' (using password: YES)

按 15 分钟间隔对 mysql 查询进行分组

如何从命令行调用带有参数的mysql存储过程?