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