MySQL에서 연결 시간 제한 변경
- MySQL에서 연결 시간 제한 변경
-
Windows OS를 사용하여 MySQL
connect_timeout
변경 -
Linux(Ubuntu 20.04) OS를 사용하여 MySQL
connect_timeout
변경
오늘은 Linux(Ubuntu 20.04) 및 Windows 운영 체제를 사용하는 MySQL에서 연결 시간 초과를 변경하는 방법을 알아보고 있습니다.
MySQL에서 연결 시간 제한 변경
때때로 connect_timeout
속성이 기본적으로 몇 초로 설정되어 있기 때문에 MySQL 서버에 대한 연결이 계속 끊어지는 경우가 있습니다.
여기에서는 Linux(Ubuntu 20.04) 및 Windows 운영 체제를 사용하여 MySQL에서 connect_timeout
의 기본값을 변경하는 방법을 살펴봅니다.
구성 파일을 업데이트하거나 SQL 쿼리를 사용하여 두 운영 체제를 모두 변경할 수 있습니다. 그들 각각을 보자.
Windows OS를 사용하여 MySQL connect_timeout
변경
먼저 Windows 명령줄을 열고 MySQL 서버 설치 경로를 탐색해야 합니다. 기본적으로 MySQL 서버는 C:\Program Files\MySQL\MySQL Server 8.0
에 설치됩니다.
명령줄에서 cd bin
을 사용하여 bin
폴더로 이동합니다. 또한 mysql -u root -p password
를 입력하여 root
사용자로 로그인합니다.
이제 필요한 업데이트를 수행하기 전에 다음 쿼리를 사용하여 connect_timeout
속성의 기본값을 확인할 수 있습니다.
mysql> SHOW VARIABLES LIKE 'connect_timeout';
출력:
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| connect_timeout | 10 |
+-----------------+-------+
1 row in set (0.00 sec)
보시다시피 MySQL 서버에 대한 연결이 10초 후에 끊어집니다. 따라서 Windows 명령줄에서 다음 명령을 사용하여 28800초(8시간)로 변경할 수 있습니다.
interactive_timeout
및 wait_timeout
을 업데이트하는 것은 전체 실행에서 많은 시간을 소비하는 애플리케이션을 실행하는 동안 유용하기 때문에 좋습니다.
mysql> SET GLOBAL connect_timeout=28800;
mysql> SET GLOBAL interactive_timeout=28800;
mysql> SET GLOBAL wait_timeout=28800;
다음 명령을 사용하여 모든 업데이트를 확인하십시오.
mysql> SHOW VARIABLES WHERE Variable_Name
-> IN ('connect_timeout', 'interactive_timeout', 'wait_timeout');
출력:
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| connect_timeout | 28800 |
| interactive_timeout | 28800 |
| wait_timeout | 28800 |
+---------------------+-------+
3 rows in set (0.04 sec)
여기서 connect_timeout
은 mysqld
서버가 Bad Handshake
를 반환하기 전에 연결 패킷을 기다리는 시간(초)을 나타냅니다. interactive_timeout
은 또한 MySQL 서버가 닫히기 전에 대화형 연결에서 활동을 기다리는 시간(초)을 보여줍니다.
connect_timeout
및 interactive_timeout
과 마찬가지로 wait_timeout
도 MySQL 서버가 연결을 닫기 전에 연결에서 활동을 기다리는 시간(초)을 표시합니다.
일부 응용 프로그램을 작성하는 경우 다음과 같은 방식으로 Java 또는 Python과 같은 프로그래밍 언어를 통해 변경할 수 있습니다.
connection.query("SET GLOBAL connect_timeout=28800")
connection.query("SET GLOBAL interactive_timeout=28800")
connection.query("SET GLOBAL wait_timeout=28800")
또 다른 방법은 C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
경로에서 my.ini
파일을 열어 구성 파일을 업데이트하는 것입니다(MySQL 서버를 기본 위치에 설치한 경우). 그런 다음 [mysqld]
섹션을 찾아 작성합니다.
[mysqld]
connect_timeout = 28800
interactive_timeout = 28800
wait_timeout = 28800
MySQL 서버를 다시 시작하고 업데이트를 즐기십시오.
Linux(Ubuntu 20.04) OS를 사용하여 MySQL connect_timeout
변경
Ubuntu 셸을 열고 sudo su
를 사용하여 수퍼유저로 로그인합니다. 그런 다음 다음 쿼리를 사용하여 MySQL 서버에 로그인합니다.
$ mysql -u root -p password
일단 들어가면 아래에서 볼 수 있듯이 connect_timeout
의 기본값인 10초를 확인하십시오.
mysql> SHOW VARIABLES LIKE 'connect_timeout';
출력:
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| connect_timeout | 10 |
+-----------------+-------+
1 row in set (0.00 sec)
이제 다음 쿼리를 실행하여 connect_timeout
, interactive_timout
및 wait_timeout
의 값을 업데이트합니다. 앞서 언급했듯이 전체 실행에 많은 시간이 걸리는 응용 프로그램을 실행하기 위해 이 세 가지를 업데이트합니다.
mysql> SET GLOBAL connect_timeout=28800;
mysql> SET GLOBAL interactive_timeout=28800;
mysql> SET GLOBAL wait_timeout=28800;
출력:
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| connect_timeout | 28800 |
| interactive_timeout | 28800 |
| wait_timeout | 28800 |
+---------------------+-------+
3 rows in set (0.13 sec)
다른 방법은 구성 파일을 업데이트하는 것입니다. connect_timeout
, interactive_timeout
및 wait_timeout
의 값으로 28800초를 예상한다고 가정합니다.
이를 위해서는 /etc/mysql/mysql.conf.d/mysqld.cnf
경로에 있는 구성 파일 편집이 필요합니다. 우리는 vim
편집기를 사용합니다. 모든 편집기를 사용하여 이 파일을 편집할 수 있습니다.
$ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
섹션을 검색하고 아래와 같이 connect_timeout
, interactive_timeout
및 wait_timeout
을 추가합니다.
[mysqld]
connect_timeout = 28800
interactive_timeout = 28800
wait_timeout = 28800
파일을 저장하고 종료합니다. systemctl restart mysql
을 사용하여 MySQL 서버를 다시 시작합니다.
다음 쿼리를 사용하여 모든 것이 예상대로 변경되었는지 확인하십시오.
mysql> SHOW VARIABLES WHERE Variable_Name
-> IN ('connect_timeout', 'interactive_timeout', 'wait_timeout');
출력:
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| connect_timeout | 28800 |
| interactive_timeout | 28800 |
| wait_timeout | 28800 |
+---------------------+-------+
3 rows in set (0.90 sec)