[펌]MariaDB 설정 파일 my.cnf

http://www.programkr.com/blog/MUDM5ADMwYT2.html

 

 

# MariaDB database server configuration file.
#
# You can copy this file to one of:
# – “/etc/mysql/my.cnf” to set global options,
# – “~/.my.cnf” to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with –help to get a list of available options and with
# –print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

# This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain “#” chars…
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
[client]
port = 3306 #클라이언트 연결 통신 포트
socket = /var/run/mysqld/mysqld.sock #socket 파일 linux/unix 시스템 특유의, 사용자 이 환경 아래에서 클라이언트 연결 돼, 안 통해 tcp/ip 네트워크 않고 직접 사용 socket 파일 연결
default-character-set = utf8mb4 #클라이언트 기본 연결 문자 집합 집합, 만약 컴파일 설치 때 이미 지정된 않으면 안 써

# Here is entries for some specific programs
# The following values assume you have at least 32M ram

# This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0

[mysqld]
#
# * Basic Settings
#
character-set-client-handshake = FALSE
character-set-server = utf8mb4 #서버 및 데이터베이스 기본 문자 집합
collation-server = utf8mb4_unicode_ci #클라이언트 보정 문자 집합
init_connect = ‘SET NAMES utf8mb4’

user = mysql
pid-file = /var/run/mysqld/mysqld.pid #서버 사이드 프로세스의 pid 파일을 만약 잃어버린 은 다시 Mysql 다시 만들 수 없습니다. 만약 다시 않으면 프로세스 죽이기 mysqld 때문에 아직 사용할 수 pkill mysql 후 다시 Mysql 은 성공
socket = /var/run/mysqld/mysqld.sock #서버 사이드 통신 파일, 만약 잃어버린 은 다시 Mysql 다시 만들 수 없습니다. 만약 다시 않으면 프로세스 죽이기 mysqld 때문에 아직 사용할 수 pkill mysql 후 다시 Mysql 은 성공
port = 3306 #Mysql 서비스 사이드 듣는 포트
basedir = /usr #Mysql 소프트웨어 디렉터리
datadir = /mnt/data/mysql #Mysql 데이터베이스 저장 목록
tmpdir = /tmp #임시 파일을 저장할 Mysql 등 대형 정렬 디스크 기반 가벼운 임시 테이블
lc_messages_dir = /usr/share/mysql
lc_messages = en_US
skip-external-locking #외부 잠금 방지 시계를 허용 외부 파일 직급 자물쇠. 잠금 파일 열기 음식이라도 성능 악영향을 미친다
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 112.124.37.33 #서버 여 개 IP 때 써 비교적 중요한 오직 묶여있습니다 IP 주소를 클라이언트를 수용할 수 있는 연결 요청
#
# * Fine Tuning #미세 조정
#
# 동시성 스레드 수, 건의 위해 CPU 핵심 곱하기 2: CPU 개수’s*2 for thread_concurrency
#thread_concurrency = 8 #소속 중점 최적화 매개 변수 이 매개 변수 는 MariaDB 기본 설정 파일 안에 아직 나타난

max_connections         = 5000 #지정한 mysql 서비스 한 허용 최대 연결 프로세스 개수
#connect_timeout         = 5
wait_timeout            = 600 #SQL 구문 최대 실행 시간
max_allowed_packet      = 16M #인터넷 설정 전송 중 한 번 수 있는 최대 메시지 전송 시스템 기본값 1MB, 최대 수 1G
thread_cache_size       = 256 #설정 threadcache 연못 속에 캐시 연결 개체 수 최대 갯수, 기본값 0, 이 값 표현 다시 이용할 수 있는 캐시 다시 만드는 중 스레드 수가 저장, 결단을 내려야 할 때 연결 해제 시, 만약 캐시 다시 만드는 중 그리고 공간, 그럼 클라이언트 있는 스레드 규모로 갖다 캐시 다시 만드는 중, 만약 스레드 다시 요청을 받았다, 그럼 요청 캐시 에서 는 읽기, 지금 캐시 속 빈 또는 새로운 요청, 그럼 스레드 규모로 다시 생성. 설정 법칙 위해: 1G 메모리 설정 을 8,2G 메모리 설정 을 16,4G 이상 설정 을 64. 만약 많은 새로운 스레드 있으면 늘 이 값 시스템 성능을 개선할 수 있다. Connections 및 Threads_created 상태가 비교적 변수를 통해 이 변수 효과를 볼 수 있다
sort_buffer_size        = 4M #정렬 버퍼 쓸 처리 비슷한 orderby 및 groupby 대기열 일으킨 정렬, 시스템 기본 크기 2M 위해 이 인자 대응 분배 메모리 것은 모든 연결 전용, 만약 100 개 연결, 실제 분배 정렬 버퍼 크기를 설정하십시오 6*100; – 6M-8M, 더 큰 것이 아니다, 이 connection 급 매개 변수, 너무 큰 설정 + 높은 동시성 있을 다 시스템 메모리 자원. 예: 500개 연결 될 소모 500*sort_buffer_size (8M) =4G 메모리 초과 2KB 때 보면 사용 mmap () 아니라 malloc () 와 진행 메모리 할당 줄여 능률을 저하시키다. 소속 중점 최적화 매개 변수.
bulk_insert_buffer_size = 16M #대량 산입 데이터 캐시 크기, 효과적으로 삽입 효율을 높일 수 있습니다. 기본값은 8M
tmp_table_size          = 64M #메모리 임시 테이블 크기, 만약 초과 이 값, 임시 테이블 디스크에 쓰인 것이다
max_heap_table_size     = 64M
#
# * MyISAM
#
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched. On error, make copy and try a repair.
myisam_recover          = BACKUP #자동 검사와 수리 안 적당히 닫힌 MyISAM 시계
key_buffer_size         = 256M #인덱스 버퍼 크기를 지정합니다. 그것은 결정 데이터베이스 색인 처리 속도, 특히 색인 읽기 속도, 메모리 위해 4G 때 설정 을 256M 또는 384M
#open-files-limit       = 2000 #모든 프로세스 최대 정말 열린 파일 확인 네가 이미 다 것이다 시스템 제한 설정 충분한 높은 열 대량의 시계 필요한 이 값 신설 큰 것이다
table_open_cache        = 400 #매개 변수 설정 캐시 수 표. 모든 연결 들어와, 다 적어도 열 한 표 캐시. 그래서 table_cache 크기 및 관련 한다 max_connections 설정. 에 대해 200 개 # 병렬 실행 연결할 수 있도록 해야 시계 캐시 최소한 200 곱하기 N, 여기 N이 응용 프로그램을 실행할 수 있습니다 # 한 조인 내종 최대 갯수. 또 아직 더 임시 테이블 및 파일 위해서 일부 추가 파일 설명자.
#이 Mysql 방문 때 한 표, 만약 이 시계는 지금 캐시 다시 만드는 중 이미 열리다, 은 바로 접근할 수 캐시; 만약 # 아직 의해 캐시, 하지만 Mysql 시계 버퍼 중 그리고 공간, 그럼 이 시계는 그냥 열리다 결코 넣고 시계 늦추다 # 독하다 영역; 만약 시계 캐시 가득, 은 어떻게 일정한 규칙에 현재 아직 쓸 시계 석방하다., 또는 임시 확대 시계 캐시 온 맡기다, 시계 캐시 사용 것이 더 빠르게 접근할 수 있는 표 내용을. 얼굴이 붉어지다 tables 어떻게 # 캐시 비우기 내용을 실행. 일반적으로, 볼 수 데이터베이스 실행 피크 아워 상태 값 Open_tables 통해 # 및 Opened_tables , 판단 것이 필요함을 table_cache 값 (중 open_tables 것은 # 전에 열 테이블 될 수가,  Opened_tables 은 이미 열 테이블 수가). 즉, 만약 open_tables 접근 table_cache 때, 그리고 Opened_tables 이 값 서서히 증가하고, 그럼 고려해야 증가 이 # 값 크기 되었다. 그리고 Table_locks_waited 비교적 높은 때 도 필요 table_cache 증가.
myisam_sort_buffer_size = 1024M #MyISAM 시계 변화가 있을 때 다시 정렬 필요한 버퍼
concurrent_insert       = 2
read_buffer_size        = 8M #하는 데 MYISAM 시계 전 테이블 스캔 버퍼 크기, 맞추다 진행 순서 스캔 청을 분배 것이다 한 판독 버퍼, MySql 어떻게 그것을 위해 분배 한동안 메모리 버퍼. read_buffer_size 제어 변수 이 버퍼 크기. 만약 시계를 맞추다 순서 스캔 요청 매우 잦다, 그리고 당신 생각 자주 스캔 진행이 너무 느리니 통과할 수 증가 이 변수 값 및 메모리 버퍼 크기 그 성능 향상.
read_rnd_buffer_size    = 8M #무작위 읽기 (조회 조작) 버퍼 크기. 임의 순서 되는 걸로 따라 읽을 때 (예를 들어 따라 정렬 순서) 을 분배 한 무작위 읽다 캐시 구. 진행 정렬 검색 할 때 MySql 일단 주사 한 번 이 버퍼 피하려고 디스크 검색 검색 속도를 높이다, 필요하면 대량의 데이터 정렬 정말 적당히 높다 이 값. 하지만 MySql 것이라는 모든 고객 연결 발급 이 버퍼 공간, 그래서 반드시 적당히 설정 가능한 한 이 값 피하려고 메모리 씀씀이는 너무 크다.
#
# * Query Cache Configuration
#
# Cache only tiny result sets, so we can fit more in the query cache.
query_cache_limit               = 512K #오직 < 이 값 결과 비로소 다른 버퍼, 배치 한 큰 결과 것이다. 다른 모든 조회 결과 모두 덮어쓰기
query_cache_size                = 256M #지정한 mysql 조회 버퍼 크기, 쓸 버퍼 select 결과 및 다음 같은 조회 때 다시 실행 쿼리 때문에 직접 복귀 결과 Qcache_lowmem_prunes 크기에 따라 와 보기 현재 부하 대해 충분한 높다, 데이터베이스 기록 크기 또는 업데이트 생산량 또한 비교적 큰 시스템 이 변수 할당 적합하지 않다 너무 크다. 그리고 높은 교부하다, 쓰기 양 큰 시스템, 건의 그 이 기능을 금지 빠지다. 소속 중점 최적화 인자 (홈 라이브러리 첨삭 고치다 -MyISAM)
# for more write intensive setups, set to DEMAND or OFF
#query_cache_type = DEMAND #만약 밀집 기록, query_cahce 이미 잃어버린 의미, 그래서 OFF 위해 필요한 설정
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
#general_log_file        = /var/log/mysql/mysql.log
#general_log             = 1
#
# Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf.
#
# we do want to know about network errors and such
log_warnings = 2 #경고 인쇄 출력 것이다 까지 오류 log 파일. 니가 MySQL 어떤 문제에 대해, 너는 마땅히 열 경고 log 또한 자세히 심사 오류 기록, 찾아낸 가능한 이유.
#
# Enable the slow query log to see queries with especially long duration
slow_query_log=1 #천천히 검색 기록 스위치
#slow_query_log[={0|1}]
slow_query_log_file = /var/log/mysql/mariadb-slow.log #천천히 조회 로그 파일
long_query_time = 1 #천천히 조회 시간
#log_slow_rate_limit = 1000
log_slow_verbosity = query_plan

#log-queries-not-using-indexes
#log_slow_admin_statements
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
#       other settings you may need to change.
#server-id = 1 #유일한 서비스 판별하다 번호, 수치 에 1부터 2^32-1 사이, master 및 slave 위에 다 필요 없다. 만약 “설정 master-host” 의해 설정 않으면 기본값은 1, 하지만 무시 이 옵션을 MySQL 안 로서 master 발효
#report_host = master1
#auto_increment_increment = 2
#auto_increment_offset = 1
log_bin = /var/log/mysql/mariadb-bin #바이너리 기록 기능 열기
log_bin_index = /var/log/mysql/mariadb-bin.index
# not fab for performance, but safer
#sync_binlog = 1
expire_logs_days = 10
max_binlog_size         = 100M
# slaves
#relay_log = /var/log/mysql/relay-bin
#relay_log_index = /var/log/mysql/relay-bin.index
#relay_log_info_file = /var/log/mysql/relay-bin.info
#log_slave_updates #사용 체인 서버에서 구조 복사 모드 (A-> B-> c), 필요 는 서버 B 위에 열 이 항목.이 옵션을 켜 에서 스레드 위에 다시 본 업데이트 로그, 잘라내고 부터 서버 바이너리 로그 기록.
#read_only #때문에 slave 읽기 전용. 오직 사용자 가진 SUPER 권한 및 위 slave 스레드 수 있는 수정 데이터, 너 이 항목을 사용할 수 없습니다. 가서 보증을 응용 프로그램 의외의 수정 slave 아니라 master 위의 데이터.
#
# If applications support it, this stricter sql_mode prevents some
# mistakes like inserting invalid dates etc.
#sql_mode = NO_ENGINE_SUBSTITUTION,TRADITIONAL
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
default_storage_engine = InnoDB #생성 테이블 때 사용할 기본 저장소 엔진
# you can’t just change log file size, requires special procedure
#innodb_log_file_size = 50M
innodb_buffer_pool_size = 256M #그게 Innodb 시계 아주 중요합니다. Innodb 비해 MyISAM 시계 대해 더욱 민감한 버퍼. 수 MyISAM 기본 key_buffer_size 설정 다음 실행될 수 있다. 하지만 Innodb 기본 innodb_buffer_pool_size 설정 다음 오히려 그 달팽이 같다. Innodb 때문에 그 데이터 및 색인 다 캐시 일어나서 없습니다 물려주다 운영 체제 너무 많은 메모리 있기 때문에 만약 만 필요 Innodb 말로 하면 돼. 그것은 높은 달한다 70-80% 가용성 메모리 설정. 일부 적용 key_buffer 규칙을 좀 한 니가 데이터 양 크지 않을 뿐만 아니라, 폭증, 그렇게 할 필요가 없다, 그 innodb_buffer_pool_size 설정을 너무 크다. 설정 너무 큰 마라, 그렇지 않으면 때문에 물리적 메모리 경쟁 이어질 운영 시스템 换页 흔들리다. innodb_buffer_pool_size = 6G
innodb_log_buffer_size = 8M #이 인자 확정 쓴 로그 파일을 사용할 메모리 크기 로 M 단위로.버퍼 더 큰 성능을 향상시킬 수 있다. 그러나 의외의 고장으로 지워질 것입니다 데이터 때문에 기본적으로 초당 다 새로 한 번 필요없어요 다양하기 값 설정 너무 큰 (심지어 긴 문제에 대해 경우) MySQL 개발자 건의를 설정 을 1 - 8M 사이에
innodb_file_per_table = 1
innodb_open_files = 400
innodb_io_capacity = 400
innodb_flush_method = O_DIRECT #InnoDB 데 새로 고침 기록 방법은 시계 공간 늘 더블 기록 경신 방법을 기본값 ‘fdatasync “, 다른 하나는 “O_DSYNC”
#
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# For generating SSL certificates I recommend the OpenSSL GUI “tinyca”.
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem

[mysqldump]
quick #그만 는 메모리 중 전체 결과 디스크 캐시. 쓰기 전에 여기서 내보내기 매우 큰 표 때 이 일을 한다
quote-names
max_allowed_packet = 16M #인터넷 설정 전송 중 한 번 수 있는 최대 메시지 전송 시스템 기본값 1MB, 최대 수 1G

[mysql]
#no-auto-rehash # faster start of mysql but no tab completition
default-character-set = utf8mb4

[isamchk]
key_buffer = 16M

#
# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with ‘.cnf’, otherwise they’ll be ignored.
#
!includedir /etc/mysql/conf.d/