Ⅰ. My.cnf 파일 이란?
my.cnf 파일은 MySQL 데이터베이스 서버의 설정 파일 중 하나로, MySQL 서버의 동작을 제어하고 구성을 정의하는 데 사용됩니다. 이 파일은 주로 데이터베이스 관리자나 시스템 관리자가 MySQL 서버를 정의하고 최적화하는 데 사용됩니다.
Ⅱ. my.cnf 특징
1) 위치: my.cnf 파일은 일반적으로 MySQL 설치 디렉토리 내에 위치하며, 주로 /etc/mysql/, /etc/my.cnf/, 또는 /usr/local/mysql/ 디렉토리 내에 있습니다. 파일 이름은 my.cnf이거나 my.ini일 수 있습니다.
2) 구성 옵션: my.cnf 파일은 MySQL 서버의 동작을 다양한 옵션과 설정으로 구성할 수 있는 텍스트 파일입니다. 예를 들어, 데이터베이스 경로, 포트 번호, 캐시 크기, 로깅 옵션, 문자 집합 설정 등을 지정할 수 있습니다.
3) 섹션: my.cnf 파일은 여러 섹션으로 나뉩니다. 각 섹션은 대괄호로 묶여 있으며, 해당 섹션에 속하는 설정 옵션들을 정의합니다. 예를 들어, [mysqld] 섹션은 MySQL 서버 데몬에 대한 설정을 정의하고, [client] 섹션은 MySQL 클라이언트 설정을 정의합니다.
4) 주석: # 기호로 시작하는 줄은 주석으로 처리되며, 설정 옵션에 대한 설명이나 비활성화된 옵션을 나타낼 때 주로 사용됩니다.
5) 기본 파일 생성 및 편집: my.cnf 파일이 없는 경우 MySQL 서버를 처음 설치하면 기본 설정 파일을 사용하게 됩니다. my.cnf 파일을 만들어 필요한 설정을 추가하거나 기존 파일을 편집하여 MySQL 서버 동작을 수정할 수 있습니다.
6) 재시작: my.cnf 파일을 수정한 후에는 MySQL 서버를 재시작하여 새로운 설정을 적용해야 합니다. 재시작 명령은 MySQL 서버의 운영 체제에 따라 다를 수 있습니다.
보안 주의: my.cnf 파일은 MySQL 서버의 중요한 설정을 포함하므로 보안을 유지하고 무단 액세스를 피하기 위해 이 파일에 대한 접근 권한을 제한해야 합니다.
서버를 운영하면서 로그가 중요한데, 중요한 이유는 어떤 문제가 생길 때 원인을 파악하기 쉽게 도와줍니다..파일의 의미는 아주 중요합니다. 문제가 발생했을 때, 그 원인 파악을 조금 더 쉽게 하도록 하여 해결 시간을 단축
Ⅲ. my.cnf 파일 설정
1. 로그 설정
리눅스/Unix 환경에서는 my.cnf 파일을 다음과 같은 내용을 추가합니다.
[mysqld] 1) 에러 로그 설정 log-error=/로그저장경로/error.log 2) 쿼리 로그 설정 log=/로그저장경로/query.log 3) 바이너리 로그 설정 log-bin=mysql-bin 4) 슬로우 쿼리(slow query) 로그 설정 slow query log =/로그저장경로/mysql-slow.log long_query_time=5 5) UPDATE 쿼리 설정 log-update=update_logs |
* 1) error.log는 MySQL 서버에서 발생하는 오류 및 경고 메시지를 기록하는 데 사용
2) slow query log는 MySQL 서버에서 실행 시간이 지연된 쿼리를 로깅하는 데 사용
3) MyISAM은 MySQL의 테이블 스토리지 엔진 중 하나이며, MyISAM 테이블에 대한 로그 정보를 기록하는 데 사용
2-1. 쿼리 로그
리눅스/Unix 환경에서는 my.cnf 파일을 다음과 같은 내용을 추가합니다.
[mysqld] # MyISAM 로그 log-isam=/[로그를 저장할 경로]/myisamlog.log # 쿼리 로그 log=/ [로그를 저장할 경로] /mysql.log # 바이너리 로그 log-bin=/ [로그를 저장할 경로] /mysql-bins.log # 슬로우 쿼리 로그 log-slow-queries=/ [로그를 저장할 경로] /mysql-slow.log long_query_time=5 |
* general_log를 활성화하면 모든 쿼리가 로깅되므로 주의해야 합니다. 이것은 주로 디버깅 및 성능 문제 해결을 위한 목적으로 사용
2-2 . 쿼리 로그 (general_log 설정 방법)
mysql> show variables like 'general_log%'; +------------------+---------------------------------+ | Variable_name | Value | +------------------+---------------------------------+ | general_log | OFF | | general_log_file | /usr/local/mysql/general_log | +------------------+---------------------------------+ |
# 로깅 (이후로 general_log_file에 실시간으로 기록됨)
mysql> set GLOBAL general_log='ON';
# 로깅 해제
mysql> set GLOBAL general_log='OFF';
* 수정 이후에는 mysql 재시작이 필요합니다.
슬로우 쿼리 설정 후, 재시작시 unknown variable 'log-slow-queries' 와 같은 오류 메시지와 함께 mysql이 시작되지 않는 경우가 있습니다. 이럴 경우에는 아래 명령어를 이용합니다.
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow-queries.log
long_query_time = 1
'데이터베이스' 카테고리의 다른 글
데이터베이스(DB) 암호화란 어떤 것인지, 어떤 방법들이 있는지에 대해 알아보겠습니다. (0) | 2024.02.19 |
---|---|
Oracle Rman 에 대해 알아보도록 하겠습니다. (0) | 2023.10.03 |
DDL, DML, DCL 에 대해 알아보겠습니다. (0) | 2022.12.04 |
데이터베이스의 정규화(normalization)에 대해 알아보겠습니다. (0) | 2022.12.03 |
데이터베이스란 무엇일까요? (1) | 2022.12.02 |