(나같은)초보를 위한 MySQL my.cnf 설정하기

서버 일반

MySQL을 나름 최적화 해보려고 구글링을 열심히 해봤는데 어려운 설명들만 있고 벤치마크를 해가면서 막 하는 선수들(?)의 글을 보면서 기껏해야 가상화에 블로그 끄적거리는 용도로 쓰는 서버에 정성을 들일 필요가 있나 싶어서 튜닝의 완성은 순정… 이라는 생각으로 기본값을 토대로 설정해 보았다.

my.cnf 설정

CentOS를 기준으로 /etc/my.cnf 를 열면 참으로 간결한 기본 설정이 보인다.

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

이걸로는 세부적인 설정을 하지 못하는데 옵션 신텍스를 모르니 설정 관련 파일을 찾아봤다.

[root@servername etc]# find / -name 'my*.cnf'
/usr/share/mysql/my-huge.cnf
/usr/share/mysql/my-large.cnf
/usr/share/mysql/my-medium.cnf
/usr/share/mysql/my-small.cnf
/usr/share/mysql/my-innodb-heavy-4G.cnf
/usr/share/doc/mysql-server-5.1.69/my-huge.cnf
/usr/share/doc/mysql-server-5.1.69/my-large.cnf
/usr/share/doc/mysql-server-5.1.69/my-medium.cnf
/usr/share/doc/mysql-server-5.1.69/my-small.cnf
/usr/share/doc/mysql-server-5.1.69/my-innodb-heavy-4G.cnf
/etc/my.cnf

위 경로의 my.cnf 파일들을 하나하나씩 열어보면 서버의 자원에 맞춰 설정해놓은 기본 세팅이 있는데 그중 서버 환경에 맞는(RAM 기준) 파일을 CTRL+C / V 해서 설정했다. 참고로 블로그를 운영하는 서버는 RAM이 1G 라서 my-larg.cnf를 선택했다. 설정할때 빼고 읽어보지 않을 주석은 깔끔하게 날리고 아래와 같이 수정 후 서비스를 리스타트. 끝.

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

symbolic-links=0

skip-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 256
sort_buffer_size = 1M
read_buffer_size =1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 16M
query_cache_limit = 32M
thread_concurrency = 4
max_connections = 100 #200

#slow-query-log-file =
long_query_time = 1
server-id    = 1

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysqlhotcopy]
interactive-timeout

innodb_data_home_dir = /var/lib/mysql
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /var/lib/mysql
innodb_buffer_pool_size = 256M
innodb_additional_mem_pool_size = 20M
innodb_log_file_size = 64M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

[myisamchk]
key_buffer_size = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Fill out this field
Fill out this field
유효한 이메일 주소를 입력해주세요.

Aws 라이트세일 비트나미 Phpmyadmin 접속 방법
AWS 라이트세일 비트나미 phpmyadmin 접속 방법
아마존 웹서비스(AWS)의 라이트세일에서 워드프레스 인스턴트를 생성하면 비트나미(Bitnami) 기반의 웹서버를 쉽게 만들 수 있습니다. NGINX, PHP, mysqlDB, phpmyadmin이 자동으로 세팅되는 비트나미를…
도메인 Ip 확인하는 4가지 방법
도메인 IP 확인하는 4가지 방법
인터넷은 IP 주소를 기반으로 연결되며 서버와 클라이언트, PC와 스마트폰 모두 고유의 IP를 가지고 있습니다. IP 주소는 숫자 배열로 이루어져 있어서…