MySQL과 MariaDB의 최대 접속 수 설정을 관리하는 방법에 대해 안내합니다. 이 가이드는 설정 확인부터 유휴 세션 관리, 사용자당 접속 수 제한, 오류 처리, 적용 가능한 버전 정보까지 포함합니다.
1. 최대 접속 수 확인
현재 최대 접속 수는 아래 명령어로 확인할 수 있습니다.
SHOW VARIABLES LIKE 'max_connections';
기본값은 151입니다.
2. 최대 접속 수 늘리기
설정 파일(my.cnf
또는 my.ini
)을 수정하여 최대 접속 수를 늘릴 수 있습니다. 예를 들어, 최대 접속 수를 500으로 늘리려면 다음과 같이 설정합니다.
[mysqld]
max_connections = 500
설정을 변경한 후 MySQL 또는 MariaDB 서버를 재시작해야 합니다.
sudo systemctl restart mysqld # MySQL 재시작
sudo systemctl restart mariadb # MariaDB 재시작
3. 동적으로 최대 접속 수 변경
서버 재시작 없이 동적으로 변경하려면 아래 명령어를 사용하세요.
SET GLOBAL max_connections = 1000;
서버가 재시작되면 이 설정은 원래 값으로 돌아가니, 영구 적용을 위해서는 설정 파일을 수정하는 것이 필요합니다.
4. 유휴 세션 및 사용자당 접속 제한
서버 자원을 더 효율적으로 관리하기 위해 유휴 세션을 자동으로 종료하고, 사용자당 최대 접속 수를 제한할 수 있습니다.
4.1. 유휴 세션 관리
유휴 세션을 자동으로 종료하려면 wait_timeout
과 interactive_timeout
값을 설정합니다. 예를 들어, 유휴 상태가 600초 이상 지속되면 세션을 자동으로 종료하도록 설정할 수 있습니다.
[mysqld]
wait_timeout = 600
interactive_timeout = 600
4.2. 사용자당 접속 수 제한
특정 사용자가 과도한 접속을 하지 않도록 하기 위해 사용자당 최대 접속 수를 제한할 수 있습니다.
[mysqld]
max_user_connections = 50
5. 관련 오류 메시지
- Too many connections (ERROR 1040): 최대 접속 수를 초과했을 때 발생하는 오류입니다.
ERROR 1040 (HY000): Too many connections
- Access denied (ERROR 1226):
max_user_connections
설정을 초과했을 때 발생하는 오류입니다. ERROR 1226 (42000): User 'user_name' has exceeded the 'max_user_connections' resource
6. 설정에 적용되는 버전 정보
- MySQL:
max_connections
,max_user_connections
,wait_timeout
,interactive_timeout
설정은 MySQL 5.x 이상에서 사용 가능합니다. - MariaDB: MariaDB 5.x 이상에서도 동일하게 적용됩니다.
최신 버전에서도 동일하게 적용되므로, 서버 성능 최적화를 위해 설정을 적절히 활용하시길 권장드립니다.
'컴퓨터 > Mysql' 카테고리의 다른 글
DBMS에서 DDL과 DML 의 차이점 (0) | 2023.05.03 |
---|---|
CentOS7 환경에서의 MySql 설칭 (0) | 2023.01.13 |
Mariadb 사용자 권한 부여 (0) | 2022.07.18 |