DataBase/MySQL
[MySQL] 시스템 변수 ( System Variables ) 란?
Hero_O
2022. 8. 1. 08:00
MySQL의 설정
- MySQL은 기동시 설정파일을 읽어 메모리나 작동방식을 초기화 하고 사용자를 제어한다. 이 때 설정 파일에 기술된 변수들이 시스템 변수이다.
설정 파일 명
- Linux/Unix - my.cnf
- window - my.ini
일반적인 설정파일 경로
- /etc/my.cnf
- /etc/mysql/my.cnf
- /usr/etc/my.cnf
- ~/.my.cnf
[설정파일 경로 확인 방법]
>> mysqld —verbose —help
// 생략
Default options are read from the following files in the given order:
**/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf**
//생략
MySQL 시스템 변수
메모리나 작동박식을 초기화하고 사용자 제어를 하는 값
종류
Scope로 구분
- Global 변수
- MySQL 서버 전체를 대상으로 하여, 변경시 전체 서버에 영향을 미친다.
- Session 변수
- 커넥션 별로 적용되는 설정.
Life Cycle로 구분
- 정적 변수
- MySQL 서버 기동중에 변경할 수 없으며, 대부분이 Global 변수로 구성되어 있다. Java에 Static 변수로 생각하면 쉽다.
- 동적 변수
- MySQL 서버 런타임에도 변경이 가능한 변수.
SET
- 시스템 변수 중 동적 변수 변경을 위해 사용하는 명령어
SET GLOBAL [변수명] = [값]
- 값 변경이 즉시 반영된다.
- 설정파일이 변경된 것은 아니기 때문에, 재기동시 초기화 됨
- SET GLOBAL variable = VALUE
예시
SET PERSIST [변수명] = [값]
- SET GLOBAL 의 재기동시 초기화되는 문제를 해결하기위해 탄생
- SET PERSIST VARIABLE = VALUE
- 재 기동시에만 변경을 원할 시 SET PERSIST_ONLY 를 사용
SET PERSIST 명령 기동 순서
- 변경된 값을 즉시 적용
- 변경된 값을 별도의 설정파일 mysqld-auto.cnf 에 기록
- MySQL서버 재기동시 my.cnf 파일과 함께 mysqld-auto.cnf 를 함께 참조하여 실행
RESET PERSISTE [변수명]
- SET PERSIST로 추가된 시스템변수에 대한 삭제용도