백은빈, 이성욱 님의 "Real MySQL" 책을 정리한 포스팅 입니다.
1. MySQL 설치
2. MySQL 서버의 시작과 종료
실행
mysqld --defaults-file=/usr/local/etc/my.cnf --initialize-insecure
--defaults-file
- mysql 서버를 기동하는데 사용되는 기본 옵션 파일을 전달하는 옵션
--initialize-insecure
- mysql 서버를 실행하는데 필요한 초기설정 관련 파일들을 자동 생성하는 옵션
- 초기 데이터 파일
- 로그 파일
- root 계정 (비밀번호 없음)
설정
my.cnf
[mysqld]
# Only allow connections from localhost
bind-address = 127.0.0.1
mysqlx-bind-address = 127.0.0.1
- 기본 옵션 파일
- 파일 검색 우선순위
- /etc/my.cnf -> /usr/local/etc/my.cnf -> ~/.my.cnf
- 처음 발견한 my.cnf 파일 하나만 적용하고, 그 이후는 무시됨
시스템 변수
SHOW VARIABLES;
- 서버를 기동할 때 사용되는 설정을 시스템 변수로 저장하여 적용할 수 있습니다.
속성
- Cmd-Line: 명령행 인자로 설정한 시스템 변수인지 여부 ("--변수명=값" 형식으로 설정할 수 있음)
- Option file: 설정파일인 my.cnf로 제어한 시스템 변수인지 여부
- System Var: MySQL이 제공한 시스템 변수인지 여부
- Var Scope: 적용 범위
- Dynamic: 시스템 변수가 정적인지 동적인지 여부
Var Scope
show global variables;
- 시스템 전체에 영향을 미칩니다.
- 주로 서버 설정에 사용됩니다.
- ex) innodb_buffer_pool_size, key_buffer_size
show session variables;
- 커넥션 단위별 값을설정할 수 있습니다.
- 특정 클라이언트 연결에만 적용됨
- ex) autocommit, sql_mode
Dynamic
- 서버 기동중에 수정이 가능한지 여부에 따라 나뉩니다.
- Dynamic
set global max_connections=5000;
set session autocommit=on;
- 메모리에 접근하여 값을 수정합니다.
- 현재 기동중인 서버 인스턴스에서만 유효합니다. (서버를 재시작하면 원래 설정값으로 돌아감)
- ex) max_connections, sql_mode, innodb_flush_log_at_trx_commit
- Static
- 기동중에 수정할 수 없는 변수입니다.
- 대부분의 글로벌 변수가 해당됩니다.
SET PERSIST
SET PERSIST max_connections=5000;
- 메모리 값을 수정하고 디스크에도 반영하는 명령어 입니다.
- mysqld-auto.cnf 파일에 기록됩니다.
- global 변수에만 사용 가능합니다.
SET PERSIST_ONLY
SET PERSIST_ONLY max_connections=5000;
- 디스크에 반영하는 명령어 입니다.
- 메모리 값에는 반영되지 않습니다.
my.cnf
- 시스템 변수의 기본 설정이 담긴 파일입니다.
[mysqld]
bind-address = 127.0.0.1
mysqlx-bind-address = 127.0.0.1
[mysqld_safe]
malloc-lib = /opt/lib/libtmalloc_minimal.so
[mysql]
default-character-set = utf8mb4
socket = /usr/local/mysql/tmp/mysql.sock
port = 3304
- 설정 변수
- bind-address: 접속 가능한 호스트 ip 설정
- mysqlx-bind-address: mysqlx 프로토콜로 접속 가능한 호스트 ip 설정
- malloc-lib: mysql에서 사용할 메모리 할당 라이브러리 지정
- 설정 그룹
- 여러 개의 설정 그룹을 담을 수 있습니다.
- 그룹명은 실행 프로그램을 주로 사용합니다.
- ex) mysqld, mysqld_safe, mysql
출처
'Database > Mysql' 카테고리의 다른 글
[Real MySQL] 4-4. 아키텍쳐: MySQL 로그 파일 (1) | 2023.11.24 |
---|---|
[Real MySQL] 4-2. 아키텍쳐: InnoDB 스토리지 엔진 아키텍쳐 (0) | 2023.11.24 |
[Real MySQL] 4-1. 아키텍쳐: MySQL 엔진 아키텍쳐 (0) | 2023.11.23 |
[Real MySQL] 3. 사용자 및 권한 (1) | 2023.11.23 |
[Real MySQL] 1. 소개 (1) | 2023.11.22 |