MYSQL 시스템 변수

MYSQL 서버가 기동하면서 메모리나 작동 방식을 초기화하고, 접속된 사용자의 제어등을 파일로 저장한다.

이 저장값을 시스템 변수(System Variables)라고 한다.

 

아래 명령어로 확인 할 수 있다.

SHOW VARIALBES;
SHOW GLOBAL VARIABLES;

 

link: https://dev.mysql.com/doc/refman/8.0/en/server-system-variable-reference.html

 

MySQL :: MySQL 8.0 Reference Manual :: 5.1.5 Server System Variable Reference

MySQL 8.0 Reference Manual  /  ...  /  MySQL Server Administration  /  The MySQL Server  /  Server System Variable Reference PREV   HOME   UP   NEXT

dev.mysql.com

 

정적 변수 vs 동적 변수

MySQL 서버의 시스템 변수는 기동중인 상태에서 변경 가능한지에 따라 정적 변수와 동적 변수로 구분한다.

아래와 같이 동적 변수의 경우 SET GLOBAL 명령으로 변경하면 즉시 MySQL 서버에 반영되지만, 서버를 재시작하는 경우 다시 원래대로 돌아간다.

SET GLOBAL max_connections = 1000;

 

my.cnf 파일에 적용하기 위해 SET PERSIST 명령어를 사용한다.

SET PERSIST 명령어는 변경 내용을 별도의 설정 파일(mysqld-auto.cnf)에 기록하고, MySQL 서버를 재시작 할 때 자동으로 반영된다.

현재 기동중인 MySQL 서버에는 적용하지 않고, 다음 재시작을 위해 mysqld-auto.cnf 파일만 변경 내용을 기록하기 위해 SET PERSIST_ONLY 명령을 사용할 수 있다.

mysql> SET PERSIST_ONLY max_connections = 1000;
mysql> SHOW GLOBAL VARIALBES LIKE 'max_connections%';

+-----------------|-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 500   |
+-----------------+-------+

 

정적 변수는 MySQL 서버가 기동중일 때 변경할 수 없으므로, SET PERSIST_ONLY 명령어를 사용한다.

 

변경사항을 취소하는 경우 RESET PERSIST 명령어를 사용한다.

-- 특정 시스템 변수의 삭제
mysql> RESET PERSIST max_connections;
mysql> RESET PERSIST IF EXISTS max_connections;

-- mysqld-auto.cnf 파일의 모든 시스템 변수 삭제
mysql> RESET PERSIST;

댓글

Designed by JB FACTORY