ZBLOG

mysql命令连接数据库如何设置超时时间

在 MySQL 中设置连接超时时间可以通过以下几种方式实现,具体取决于你的需求(客户端或服务端配置):


1. 客户端连接时设置超时参数

在连接数据库时,通过命令行或代码指定超时参数:

命令行方式(mysql client)

  1. mysql --connect_timeout=10 -u username -p
  • --connect_timeout=10:设置连接超时为 10 秒(单位:秒)。

编程语言示例(如 Python)

  1. import pymysql
  2. conn = pymysql.connect(
  3. host='localhost',
  4. user='user',
  5. password='password',
  6. database='test',
  7. connect_timeout=10 # 超时时间(秒)
  8. )

2. MySQL 服务端配置

修改 MySQL 服务器的配置文件(my.cnfmy.ini),调整以下参数:

  1. [mysqld]
  2. # 客户端连接超时(默认值通常为 10 秒)
  3. connect_timeout = 30
  4. # 交互式和非交互式连接的等待超时(默认:28800秒/8小时)
  5. interactive_timeout = 3600
  6. wait_timeout = 3600
  • connect_timeout:建立 TCP 连接时的超时时间。
  • wait_timeout:非交互式连接的空闲超时时间。
  • interactive_timeout:交互式连接的空闲超时时间。

修改后需重启 MySQL 服务生效:

  1. sudo systemctl restart mysql # Linux

3. JDBC/ODBC等驱动配置

如果是通过 JDBC (Java) 或其他驱动连接,可以在 URL 中指定参数:

  1. String url = "jdbc:mysql://localhost:3306/db?connectTimeout=5000&socketTimeout=30000";
  2. // connectTimeout: 连接超时(毫秒)
  3. // socketTimeout: Socket读写超时(毫秒)

4. Session级临时设置

对当前会话动态修改超时时间:

  1. SET GLOBAL wait_timeout = 3600;
  2. SET SESSION wait_timeout = 1800;

注意事项

  1. 区分场景
    • connect_timeout:适用于建立连接的阶段。
    • wait_timeout/interactive_timeout:适用于已建立的空闲连接。
  2. 生产环境建议:避免将 wait_timeout 设得过短,否则可能导致频繁重连。

如果有其他具体需求,可以进一步说明!


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=23586

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?