如何查看/更改MySQL连接超时设置?

Edg*_*gar 16 java mysql

我有一个java程序,当我登录时,大约600,000毫秒(我实际上尝试了几次,它总是~600,000,这就是为什么我认为有些地方设置超时600,000毫秒)我的数据库连接崩溃,我的程序没有更长的工作(它总是需要连接到数据库).它给了我Communication link failure错误.我这是我的mysql连接设置:

import java.sql.*;
import javax.swing.*;
public class mysqlconnect {
    Connection conn = null;
    public static Connection ConnectDb()    {
        try{
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn = DriverManager.getConnection("jdbc:mysql://server_name/database_name","user_name","user_password");
            return conn;
        }catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Cant connect to db");
            return null;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试添加?autoReconnect=true&tcpKeepAlive我的代码,但没有运气.有没有办法去phpmyadmin并在那里更改一些设置(增加超时时间)?

Öme*_*alı 29

SET SESSION wait_timeout = 999999;//or anything you want
Run Code Online (Sandbox Code Playgroud)

从mysql命令行那将增加超时值.为了能够看到价值:

SHOW VARIABLES LIKE 'wait_timeout';
Run Code Online (Sandbox Code Playgroud)


Ras*_*ler 7

您可以发出此请求以在 MySql 中显示您的超时

SHOW VARIABLES LIKE 'connect_timeout';
Run Code Online (Sandbox Code Playgroud)

接下来,您可以将其更新为 60 秒,例如

SET GLOBAL connect_timeout=60;
Run Code Online (Sandbox Code Playgroud)

如果问题是您可以使用的查询 Statement.setQueryTimeout


小智 5

您可以通过以下方式设置wait_timeout NET_read_timeoutconnect_timeout解决问题。

SHOW VARIABLES LIKE 'wait_timeout'; SET SESSION wait_timeout = 999999;

SHOW variables LIKE 'NET_read_timeout'; SET SESSION net_read_timeout = 1000;

SHOW VARIABLES LIKE 'connect_timeout'; SET GLOBAL connect_timeout = 1000;

  • 也可以发个帖子解释一下吗? (2认同)