Подтвердить что ты не робот

Как я могу увидеть/изменить настройки таймаута подключения к 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;
        }
    }
}

Я попытался добавить ?autoReconnect=true и tcpKeepAlive к моему коду, но не повезло. Есть ли способ перейти на phpmyadmin и изменить некоторые настройки там (увеличить время ожидания)?

4b9b3361

Ответ 1

SET SESSION wait_timeout = 999999;//or anything you want

Из командной строки mysql, которая увеличит значение таймаута. Чтобы увидеть значение:

SHOW VARIABLES LIKE 'wait_timeout';

Ответ 2

Вы можете сделать этот запрос, чтобы показать свой тайм-аут в MySql

SHOW VARIABLES LIKE 'connect_timeout';

Затем вы можете обновить его до 60 секунд для примера

SET GLOBAL connect_timeout=60;

Если проблема заключается в запросе, вы можете использовать Statement.setQueryTimeout

Ответ 3

Вы можете установить wait_timeout NET_read_timeout и connect_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;

Ответ 4

Я обычно делаю это одним из следующих способов:

1) Отредактируйте файл my.ini. Этот файл обычно находится на C:\ProgramData\MySQL\MySQL Server 5.6\my.ini

[mysqld]
interactive_timeout=2147483
wait_timeout=2147483

(максимальное значение 2147483 для Windows и 31536000 в других ОС)

После этого перезагрузите машину.

2) Включите параметр времени ожидания в URL JDBC. Здесь URL JDBC взят из моего кода

JDBC: MySQL://HOST: PORT/DATABASE_NAME autoReconnect = истина & амп; sessionVariables = sql_mode = 'STRICT_TRANS_TABLES, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION, PAD_CHAR_TO_FULL_LENGTH', interactive_timeout = 2147483,wait_timeout = 2147483