상세 컨텐츠

본문 제목

Real MySQL 8.0 - MySQL 서버 설정

DB/MySQL

by 덴마크 당나귀 2023. 3. 19. 15:48

본문

728x90

 

 

일반적으로 하나의 설정 파일 사용 

- 리눅스 : my.cnf / 윈도우 : my.ini 이름 사용

 

MySQL 시스템 변수의 특징

  • MySQL 서버는 기동하면서 설정 파일의 내용을 읽어 메모리나 작동 방식을 초기화하고, 접속된 사용자를 제어하기 위해 이러한 값을 별도로 저장해둔다.
  • MySQL 서버세서는 이렇게 저장된 값을 시스템 변수라고 한다.

글로벌 변수와 세션 변수

  • 시스템 변수 값이 어떻게 MySQL 서버와 클라이언트에 영향을 미치는지 판단하려면 각 변수가 글로벌 변수인지, 세션 변수인지 구분할 수  있어야 한다.
  • 시스템 변수가 가지는 속성 중 Var Scope라는  속성은 시스템 변수의 적용 범위를 나타낸다. MySQL 서버 전체를 대상으로 하는지 (GLOBAL) 아니면, MySQL 서버와 클라이언트 간의 커넥션(Session)만인지 구분한다.어떤 변수는 모두 적용되기도 한다.
  • 세션 변수는 커넥션별로 설정값을 서로 다르게 지정할 수 있으며 한번 연결된 커넥션의 세션 변수는 서버에서 강제로 변경할 수 없다.

정적 변수와 동적 변수

  • 시스템 변수는 MySQL 서버가 기동 중인 상태에서 변경 가능한지에 따라 동적인지 정적인지 구분된다.
  • 디스크에 저장된 설정 파일의 내용은 변경하더라도 서버가 재시작하기 전엔 적용되지는 않는다. 
  • 그러나 SHOW 명령으로 적용된 변숫값을 확인 가능. SET 명령을 이용해 값을 바꿀 수도 있다. 
  • 그러나 SET 명령을 통해 변경되는 변수값은 기동 중인 MySQL의 인스턴스에서만 유효.
  • 영구히 적용하려면 ,my.cnf(my.ini) 파일도 반드시 변경해야 한다. 
  • MySQL 8.0 이상부터는 SET PERSIST 명령을 사용해 구동중인 서버의 시스템 벼수를 변경하면서 자동으로 설정 파일로 기록된다.
  • 앞섯 말했듯 동적 변수의 경우 SET 명령으로 변경할 시에 서버를 재시작하지 않아도 되지만, 또한 설정파일에는 영향을 끼치지 않기 때문에 그러려면 SET PERSIST 명령어를 사용해야 한다.

SET PERSIST

  • 동적 변수의 경우 SET GLOBAL 명령으로 즉시 서버에 반영시킬 수 있다.
  • 예를 들면, 최대 커넥션 개수를 제한하는 시스템 변수인 max_connections라는 동적 시스템 변수를 커넥션의 개수를 더 늘리기 위해서 사용할 수 있다.
SET GLOBAL max_connections = 5000;
  • 이런식으로 시스템 변수를 즉시 변경할 수 있다. 그런데 이렇게 SET GLOBAL 명령어를 사용하면 따로 또 서버에도 적용을 시켜줘야 되는데 안해주는 경우를 대비하기 위해 SET PERSIST를 사용한다. 
  • 알아야 될 점은 SET PERSIST 명령어는 세션 변수에는 적용되지 않는다. 

 

728x90

'DB > MySQL' 카테고리의 다른 글

Real MySQL 8.0 - MySQL 트랜잭션과 잠금  (0) 2023.03.30
Real MySQL 8.0 - MySQL 아키텍처  (0) 2023.03.19
Real MySQL 8.0 - MySQL 사용자 및 권한  (0) 2023.03.19

관련글 더보기