Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何查看/更改MySQL连接超时设置?_Java_Mysql - Fatal编程技术网

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

Java 如何查看/更改MySQL连接超时设置?,java,mysql,Java,Mysql,我有一个Java程序。当我登录时,在大约600000毫秒之后(我实际上尝试了几次,每次都是600000毫秒。这就是为什么我认为某个地方设置了600000毫秒的超时)。我的数据库连接崩溃,我的程序不再工作(它总是需要连接到数据库)。它给我通信链路故障错误。我这里是我的mysql连接设置: import java.sql.*; import javax.swing.*; public class mysqlconnect { Connection conn = null; publi

我有一个Java程序。当我登录时,在大约600000毫秒之后(我实际上尝试了几次,每次都是600000毫秒。这就是为什么我认为某个地方设置了600000毫秒的超时)。我的数据库连接崩溃,我的程序不再工作(它总是需要连接到数据库)。它给我
通信链路故障
错误。我这里是我的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;
        }
    }
}
我尝试将
?autoReconnect=true
&
tcpKeepAlive
添加到我的代码中,但没有成功。有没有办法转到phpmyadmin并在那里更改一些设置(增加超时时间)

从mysql命令行,将增加超时值。要查看该值,请执行以下操作:

SHOW VARIABLES LIKE 'wait_timeout';

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

SHOW VARIABLES LIKE 'connect_timeout';
接下来,您可以将其更新为60秒,例如

SET GLOBAL connect_timeout=60;

如果问题是查询,您可以使用设置
wait\u timeout
NET\u read\u timeout
connect\u timeout
以以下方式解决问题

显示“等待超时”等变量;
设置会话等待超时=999999

显示“NET_read_timeout”等变量;
设置会话网络读取超时=1000

显示“连接超时”等变量;

设置全局连接超时=1000

我通常使用以下任一方法执行此操作:

1) 编辑my.ini文件。此文件通常位于C:\ProgramData\MySQL\MySQL服务器5.6\my.ini上

[mysqld]
interactive_timeout=2147483
wait_timeout=2147483
(Windows的最大值为2147483,其他操作系统的最大值为31536000)

之后,重新启动机器

2) 在JDBCURL中包含等待超时参数。下面是一个取自我代码的JDBC URL


jdbc:mysql://HOST:PORT/DATABASE_NAME?autoReconnect=true&sessionVariables=sql_mode=“严格的传输表,无自动创建用户,无引擎替换,字符到完整长度”,交互式超时=2147483,等待超时=2147483

对不起,我不明白,我必须将其写入我的db_config文件或phpMyAdmin中的某个地方将这些代码保存在sql文件中,然后执行它,或者通过Java语句执行它,或者通过将其直接复制到mysql命令行或toad for mysql或mysql workbench来执行它。它给了我这个错误-
#1227-拒绝访问;您需要(至少一个)超级权限来执行此操作
,我想我需要为此获得更好的访问权限谢谢,它的方法与您下面的帖子几乎相同,但由于那个家伙先发布了帖子,所以我选择他作为答案,您也可以发布解释吗?
[mysqld]
interactive_timeout=2147483
wait_timeout=2147483