본문 바로가기
컴퓨터/Mysql

MySQL과 MariaDB에서 최대 접속 수 확인 및 늘리기

by 토크미 2024. 10. 5.

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_timeoutinteractive_timeout 값을 설정합니다. 예를 들어, 유휴 상태가 600초 이상 지속되면 세션을 자동으로 종료하도록 설정할 수 있습니다.

[mysqld]
wait_timeout = 600
interactive_timeout = 600

4.2. 사용자당 접속 수 제한

특정 사용자가 과도한 접속을 하지 않도록 하기 위해 사용자당 최대 접속 수를 제한할 수 있습니다.

[mysqld]
max_user_connections = 50

5. 관련 오류 메시지

  1. Too many connections (ERROR 1040): 최대 접속 수를 초과했을 때 발생하는 오류입니다.
  2. ERROR 1040 (HY000): Too many connections
  3. Access denied (ERROR 1226): max_user_connections 설정을 초과했을 때 발생하는 오류입니다.
  4. 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