시스템 변수
시스템 변수(System variables)
MySQL 서버는 가동하면서 설정 파일의 내용을 읽어 메모리나 작동 방식을 초기화하고, 접속된 사용자를 제어하기 위해 이러한 값을 별도로 저장해둔다. MySQL 서버에서는 이렇게 저장된 값을 시스템 변수(System variables)라고 한다.
SHOW GLOBAL VARIABLES 명령어로 확인가능
이런 시스템 변수는 다음과 같은 형식으로 구성돼 있다.
- Cmd-Line : MySQL 서버의 명령행 인자로 설정 될 수있는지 여부를 나타낸다.
- Option File : 설정파일인 my.cnf(my.ini)로 제어할수 있는지 여부를 나타낸다.
- System Var : 시스템 변수인지 아닌지를 나타낸다.
- Var Scope : 시스템 변수의 적용 범위를 나타낸다.
- Dynamic: 시스템 변수가 동적인지 정적인지 구분하는 변수이다.
글로벌 변수와 세션 변수
글로벌 변수(Global Variable)
MySql 서버 전체에 영향을 미치는 변수이다. 서버사 실행되면 설정되고 모든 세션에서 사용가능하다.
세션 변수(Session Veriable)
세션(사용자가 MySQL 서버에 연결한 각각의 독립된 작업공간) 에서만 유효한 변수이다.
정적 변수와 동적 변수
서버가 기동 중인 상태에서 변경가능한지에 따라 동적 변수와 정적 변수로 구분된다.
SHOW GLOBAL VARIABLES LIKE '%max_connections%'; 조회
SET GLOBAL max_connections=[설정할 값] 수정
변경될것을 볼수있다. 하지만 SET 명령어를 통해 변경되는 변숫값이 my.cnf(my.ini) 파일에 반영되는것이 아니여서 서버를 재시작하여 조회해보면 초기화되서 나오게 된다. 영구적으로 저장하려면 SET PERSIST 명령어를사용
SET PERSIST max_connections=5000;
즉 SET PERSIST 명령어를 사용하면 MySQL 서버 설정 파일에 변경내용을 수동으로 기록하지 않아도 자동으로 영구 반영된다.
만약 재시작 시에 변경 내용을 저장하고싶다면 SET PERSIST_ONLY명령어를 사용하면된다.
서버에 바로 저장되지않고 mysqld-auto.cnf 파일에만 변경내용을 저장해두고 재시작시에 적용된다.
SET PERSIST_ONLY max_connections=500;
PERSIST, PERSIST_ONLY로 추가한 시스템 변수 내용을 삭제할 때도 있다 그럴때는
## 특정 시스템 변수만 삭제
RESET PERSIST max_connections;
RESET PERSIST IF EXISTS max_connections;
## myslqd-auto.cnf 파일의 모든 시스템 변수를 삭제
RESET RERSIST;
를 실행하면 삭제할수있다.
참고
'MySQL' 카테고리의 다른 글
[MySQL] 데이터 압축이란? (1) | 2024.01.27 |
---|---|
[MySQL] MySQL의 트랜잭션과 잠금 (1) | 2024.01.26 |
[MySQL] 사용자 및 권한 (1) | 2024.01.05 |
SQL 기초 (2) | 2023.12.04 |
MySQL 콘솔 접속방법 (0) | 2023.12.04 |