db/mysql

MySQL 5.7 update after my.conf

C/H 2016. 11. 18. 17:05

mysql 5.5.x my.cnf 참고

설정을 모두 수정하는건 아니고, 변경이 필요한 부분만 수정/추가한다.

[mysqld] 
datadir=/var/lib/mysql 
socket=/var/lib/mysql/mysql.sock 

# Disabling symbolic-links is recommended to prevent assorted security 
risks 
symbolic-links=0 
log-error=/var/log/mysqld.log 
pid-file=/var/run/mysqld/mysqld.pid 

# 비밀번호 정책 
validate-password=off 
#validate_password_policy=LOW 
#validate_password.policy=LOW  # mysql8

# 슬로우 쿼리 
slow_query_log=1 
long_query_time = 0.5 
slow_query_log_file = /var/log/mysql/mysql-slow.log 

# Recommended in standard MySQL setup 
# 프로그램에서 쿼리를 엄격모드에 문제가 있을 경우 추가 
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 
#sql-mode="" # 혹은 설정하지 않는다. 

character-set-client-handshake=FALSE 
init_connect = SET collation_connection = utf8_general_ci 
init_connect = SET NAMES utf8 
character-set-server = utf8 
collation-server = utf8_general_ci 

#federated
[mysqld] 
datadir=/var/lib/mysql 
socket=/var/lib/mysql/mysql.sock 

# Disabling symbolic-links is recommended to prevent assorted security 
risks 
symbolic-links=0 
log-error=/var/log/mysqld.log 
pid-file=/var/run/mysqld/mysqld.pid 

# 비밀번호 정책 
#validate-password=off # mysql8 삭제 예정
default_authentication_plugin=mysql_native_password # default plugin 설정
validate_password_length=4
validate_password_mixed_case_count=0
validate_password_number_count=1
validate_password_special_char_count=1
validate_password_policy=1 # 0:LOW, 1:MEDIUM, 2:STRONG # 0: count 기능을 사용하지 않는다.
# 엄격모드는 validate-password 기능을 사용하지 않는다.
#sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 
sql-mode="" # 혹은 설정하지 않는다. 

# 슬로우 쿼리 
log_slow_admin_statements # DDL쿼리도 슬로우 쿼리에 기록 
slow_query_log = 1 # 슬로우 쿼리로그 활성화 
long_query_time = 0.5 # 이 변수값보다 쿼리처리가 길게 걸린다면 에러로그에 기록 
slow_query_log_file = /var/log/mysql/slow_query.log # 슬로우 쿼리 로그파일 경로 

character-set-client-handshake=FALSE 
init_connect=SET collation_connection = utf8mb4_general_ci 
init_connect=SET NAMES utf8mb4 
character-set-server = utf8mb4 
collation-server = utf8mb4_general_ci 

skip-host-cache 
skip-name-resolve # 역DNS 검색 비활성 
skip-external-locking # 외부(TCP/IP) 잠금 비활성 

## MySQL 스케줄러를 사용하려면 아래 event-scheduler 옵션을 ON으로 변경 
#event-scheduler = OFF # 이벤트 비활성 
explicit_defaults_for_timestamp=1 

back_log = 100 # 동시접속시 대기시킬수있는 커넥션 갯수 
max_connections = 3000 # 최대 클라이언트 연결 갯수 
max_connect_errors = 999999 
thread_cache_size = 50 # 다쓴 쓰레드를 스레드풀에 저장할 갯수 
table_open_cache = 400 # 각 쓰레드별 오픈할 테이블수 
wait_timeout = 28800 # 커넥션 최대 대기시간(초) 

#sort_buffer_size = 128K # 정렬에 필요한 버퍼의 크기 ORDER BY 또는 GROUP BY 연산 속도와 관련 
#join_buffer_size = 128K # 조인이 테이블을 풀스캔 하기위해 사용하는 버퍼크기 
#read_buffer_size = 128K # 테이블 스캔에 필요한 버퍼크기 
#read_rnd_buffer_size = 128K # 디스크 검색을 피하기위한 랜덤 읽기 버퍼크기 
sort_buffer_size = 512K # 정렬에 필요한 버퍼의 크기 ORDER BY 또는 GROUP BY 연산 속도와 관련 
join_buffer_size = 6K # 조인이 테이블을 풀스캔 하기위해 사용하는 버퍼크기 
read_buffer_size = 64K # 테이블 스캔에 필요한 버퍼크기 
read_rnd_buffer_size = 256K # 디스크 검색을 피하기위한 랜덤 읽기 버퍼크기 

query_cache_size = 32M # 쿼리 결과를 캐싱하기 위해 할당된 메모리 크기 
query_cache_limit = 2M # 이 변수 값보다 큰 값은 캐싱이 안됨 

group_concat_max_len = 1024 # GROUP_CONCAT()함수 사용시 컬럼값 최대크기
[innoDB] 
innodb_file_per_table = 1 # 테이블 단위로 테이블스페이스 할당, 활성시 확장자 .ibd 파일이 생성됨 
innodb_data_home_dir = /var/lib/mysql # innodb 홈디렉터리 경로 
innodb_data_file_path = ibdata1:256M:autoextend # 파일명 : 초기용량 : 자동증가 : 최대사이즈 
innodb_autoextend_increment = 100 #테이블 스페이스 자동 확장시 크기 
innodb_log_group_home_dir = /var/log/mysql 
innodb_log_arch_dir = /var/log/mysql # 로그 디렉터리 정보 
innodb_buffer_pool_size = 100M     # 데이터와 인덱스를 캐시하기 위해 사용하는 메모리 버퍼크기 
                                # innodb에서 사용할 메모리 양으로 전체 메모리의 50~80% 정도로 설정 
innodb_additional_mem_pool_size = 16M # 데이터 디렉토리 정보와 내부 데이타 구조를 저장하는 메모리 풀의 크기 
innodb_log_buffer_size = 16M     # Redo 로그 버퍼크기 
                                # 로그 버퍼 사이즈로 성능에 맞춰 로그를 기록하는 경우 크게 설정 
innodb_log_file_size = 64M # 로그 파일 사이즈로 버퍼풀 사이즈의 25% 정도로 설정 
innodb_flush_log_at_trx_commit = 2 # 커밋 로그 옵션으로 성능 최적화로 1분마다 저장되도록 2로 설정 
                                # 1=트랜젝션 실행할때마다 로그 파일에 기록되고 디스크 플러시가 실행 
innodb_support_xa = OFF # 트렌젝션 two-phase commit 지원, 디스크 플러시 횟수를 줄여 성능항상 
                        # 분산데이터 기능 (2-PhaseCommit) # 2012.09.13, xCode, 1 chip x 8 core 
#innodb_thread_concurrency = 0 # InooDB내에 쓰레드 갯수, 변수 0은 쓰레드간 동시성 비활성화 
innodb_lock_wait_timeout = 20 # 롤백이 진행되기 전에 LOCK을 대기하는 시간(초) 
innodb_force_recovery = 0 # 크래시 복구 모드 설정 
innodb_flush_method = O_DSYNC # 성능을 위해 메모리에서 직접 액세스 하도록 설정 
innodb_purge_threads = 1 
innodb-read-io-threads = 2 
innodb-write-io-threads = 2 
innodb_thread_concurrency = 6 
innodb-buffer-pool-instance = 3 # O_DIRECT=운영체제의 버퍼를 사용 않고 IO 실행
                                # RAID 컨트롤러(캐시메모리 장착된)가 없거나 SAN 사용시 O_DIRECT를 사용 하지 않음 
innodb_doublewrite = 0 # 이중 쓰기 버퍼 비활성 
innodb_sync_spin_loops = 20 # 쓰레드가 지연되기 전에 (suspended) 풀어 주기 위해 InnoDB 뮤텍스 (mutex)를 기다리는 쓰레드의 대기 시간 
innodb_table_locks = 1 # LOCK TABLES은 AUTOCOMMIT=0경우에, InnoDB로 하여금 내부적으로 테이블을 잠금 
innodb_thread_sleep_delay = 1000 # InnoDB 큐를 조이닝 (joining)하기 전에 InnoDB 쓰레드가 일시 정지 (sleep)하는 시간 
innodb_max_purge_lag = 0 # 퍼지 연산 (purge operation)이 래깅 (lagging)될 때 INSERT, UPDATE 및 DELETE 연산을 지연 시키는 방법을 제어, 디폴트값 0일시 지연 없음 
innodb_commit_concurrency = 0 # 동시에 실행되는 쓰레드의 숫자. 이 값이 0이 되면 동시성 제어 (concurrency control)가 비활성화 
innodb_concurrency_tickets = 500 # InnoDB에 동시에 들어갈 수 있는 쓰레드의 숫자는 innodb_thread_concurrency 변수로 알아볼 수가 있다. 
                                 # 여러 개의 쓰레드가 이미 컨커런시 한계에 도달하였다면, 하나의 쓰레드만이 큐에 들어갈 수 있다. 
                                 # 하나이 쓰레드가 InnoDB에 들어가게 되면, innodb_concurrency_tickets의 값과 일치하는 “자유 티켓”의 숫자가 주어지고, 
                                 # 쓰레드가 자신의 티켓을 사용하기 전 까지는 자유롭게 InnoDB에 들어가고 나올 수가 있다. 
                                 # 이런 후에는, 쓰레드는 다시금 일관성 검사를 하고 InnoDB에 다시 들어가려고 시도하게 된다
[mysql] 
default-character-set=utf8 
#default-character-set=utf8mb4 
show-warnings # 경고 발생시 메세지 자동 출력 
prompt=\u@\h:\d\_\R:\m:\\s> # SQL 프롬프트 설정 
#pager=”less -n -i -F -X -E” # 데이터 출력시 페이징처리 
#no-auto-rehash # 자동 완성 기능 비활성화 
#safe-updates # 데이터 변경 또는 삭제시 wherer구문 필수입력
[myisam] 
## InnoDB를 사용하지 않고 MyISAM만 사용한다면 key_buffer_size를 4GB까지 설정 
key_buffer_size = 32M # 인텍스 캐시 크기 
bulk_insert_buffer_size = 32M # 대량 삽입에 사용된 트리 캐시의 크기, 쓰레드당 각각 할당됨 
myisam_sort_buffer_size = 1M # 인덱스 정렬시 할당되는 버퍼의 크기 
myisam_max_sort_file_size = 2G # 인덱스 재 생성시 사용할 임시 파일의 최대 크기 
myisam_repair_threads = 1 # 정렬 복구시 사용될 쓰레드 갯수 
myisam_recover # MyISAM 테이블을 열었을시 테이블 자동복구 
ft_min_word_len = 3 # 하나의 FULLTEXT 인덱스에 포함 되는 단어의 최소 길이 값, 
                    # 변경후 REPAIR TABLE tbl_name QUICK 으로 재 구축해야함 

#federated
반응형