Настройка Mysql
Дананя статья будет посвящена настройке Mysql для обычной работы.
конфигруационный файл my.cnf
/etc/mysql/my.cnf - в gentoo
/etc/my.cnf - в Centos
/etc/mysql/my.cnf - в Ubuntu
/usr/local/etc/my.cnf - в FreeBSD
Кодировка koi8r не обязательна, укажите ту что считаете нужной.
Пример(gentoo,ubuntu):
[client] port = 3306 socket = /var/run/mysqld/mysqld.sock
[mysql] character-sets-dir=/usr/share/mysql/charsets default-character-set=koi8r
[mysqladmin] character-sets-dir=/usr/share/mysql/charsets default-character-set=koi8r
[mysqlcheck] character-sets-dir=/usr/share/mysql/charsets default-character-set=koi8r
[mysqldump] character-sets-dir=/usr/share/mysql/charsets default-character-set=koi8r
[mysqlimport] character-sets-dir=/usr/share/mysql/charsets default-character-set=koi8r
[mysqlshow] character-sets-dir=/usr/share/mysql/charsets default-character-set=koi8r
[myisamchk] character-sets-dir=/usr/share/mysql/charsets
[myisampack] character-sets-dir=/usr/share/mysql/charsets
[mysqld_safe] err-log = /var/log/mysql/mysql.err
[mysqld] character-set-server = koi8r user = mysql port = 3306
#ниже включается бинари лог, разкоментируйте следующие 2 строки чтобы включить #server-id=1 #log-bin=mysqld-bin
socket = /var/run/mysqld/mysqld.sock pid-file = /var/run/mysqld/mysqld.pid log-error = /var/log/mysql/mysql.err basedir = /usr datadir = /var/lib/mysql skip-external-locking tmpdir = /tmp/
key_buffer_size = 384M sort_buffer_size = 2M read_buffer_size = 2M read_rnd_buffer_size = 8M myisam_sort_buffer_size = 64M thread_cache_size = 8 query_cache_size = 32M thread_concurrency = 8 skip-name-resolve
innodb_buffer_pool_size = 32M innodb_additional_mem_pool_size = 8M innodb_data_home_dir = /var/lib/mysql/ innodb_log_group_home_dir = /var/lib/mysql/ innodb_data_file_path = ibdata1:10M:autoextend innodb_log_file_size = 32M innodb_log_buffer_size = 8M innodb_log_files_in_group = 2 innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 70 max_connections = 1024
[mysqldump] quick max_allowed_packet = 16M
[isamchk] key_buffer = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M
[myisamchk] key_buffer_size = 256M sort_buffer_size = 256M read_buffer = 2M write_buffer = 2M
[mysqlhotcopy] interactive-timeout
Пример(Centos):
[client] port = 3306 socket=/var/lib/mysql/mysql.sock
[mysql] loose-local-infile=1
[mysqld_safe] err-log = /var/log/mysql/mysql.err
[mysqld]
user = mysql port = 3306 socket = /var/lib/mysql/mysql.sock pid-file = /var/run/mysqld/mysqld.pid log-error = /var/log/mysql/mysql.err basedir = /usr datadir = /var/lib/mysql skip-external-locking symbolic-links=0
key_buffer_size = 384M sort_buffer_size = 2M read_buffer_size = 2M read_rnd_buffer_size = 8M myisam_sort_buffer_size = 64M thread_cache_size = 8 query_cache_size = 32M thread_concurrency = 8 skip-name-resolve
language = /usr/share/mysql/russian loose-local-infile=1
#ниже включается бинари лог, разкоментируйте следующие 2 строки чтобы включить #server-id=1 #log-bin=mysqld-bin
tmpdir = /tmp/
innodb_buffer_pool_size = 32M innodb_additional_mem_pool_size = 16M innodb_data_home_dir = /var/lib/mysql/ innodb_log_group_home_dir = /var/lib/mysql/ innodb_data_file_path = ibdata1:10M:autoextend innodb_log_file_size = 32M innodb_log_buffer_size = 8M innodb_log_files_in_group = 2 innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 70 max_connections = 1024
[mysqldump] quick max_allowed_packet = 16M
[isamchk] key_buffer = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M
[myisamchk] key_buffer_size = 256M sort_buffer_size = 256M read_buffer = 2M write_buffer = 2M
[mysqlhotcopy] interactive-timeout
[mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
FreeBSD
Файл конфигурации может быть в разных местах
/etc/my.cnf /var/db/mysql/my.cnf /usr/local/etc/my.cnf
Мы будем использовать пусть
/var/db/mysql/my.cnf
Пример конфигурации
[client] port = 3306 socket = /tmp/mysql.sock
[mysqld] port = 3306 socket = /tmp/mysql.sock skip-external-locking
# Если Вы используете InnoDB, то закомментируйте эту опцию #skip-innodb # С этой опцией MySQL не будет инициализировать библиотеку Berkeley DB, # что позволит сэкономить большое количество памяти. #skip-bdb
# Файл должен существовать, с соответствующими правами на него: # touch /var/log/mysql.log # chown mysql:wheel /var/log/mysql.log # chmod 640 /var/log/mysql.log general_log_file = /var/log/mysql.log
key_buffer_size = 384 sort_buffer_size = 2M read_buffer_size = 2M read_rnd_buffer_size = 8M myisam_sort_buffer_size = 64M thread_cache_size = 8 query_cache_size = 32M thread_concurrency = 8 skip-name-resolve innodb_buffer_pool_size = 32M innodb_additional_mem_pool_size = 8M innodb_data_home_dir =/var/db/mysql/ innodb_log_group_home_dir = /var/db/mysql/ innodb_data_file_path = ibdata1:10M:autoextend innodb_log_file_size = 32M innodb_log_buffer_size = 8M innodb_log_files_in_group = 2 innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 70 max_connections = 1024
[mysqldump] quick max_allowed_packet = 16M
[mysql] # Отключает автоматическое рехеширование. rehash следует использовать # для получения хеша таблиц и полей. Это обеспечивает более # быстрый старт mysql. no-auto-rehash # Опция, которую рекомендуется раскомментить начинающим :) # Разрешает выполнять только операции UPDATE и DELETE, используя ключи. #safe-updates
[isamchk] key_buffer = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M
[myisamchk] key_buffer_size = 256M sort_buffer_size = 256M read_buffer = 2M write_buffer = 2M
[mysqlhotcopy] interactive-timeout
Общие рекомендации для всех OS:
в секцию
[mysqld]
key_buffer_size = 384 sort_buffer_size = 2M read_buffer_size = 2M read_rnd_buffer_size = 8M myisam_sort_buffer_size = 64M thread_cache_size = 8 query_cache_size = 32M thread_concurrency = 8 skip-name-resolve
[myisamchk] key_buffer_size = 256M sort_buffer_size = 256M read_buffer = 2M write_buffer = 2M
Источник: http://www.celteh.com/dokumentatsiya/mysql.html |