Инструменты пользователя

Инструменты сайта


Боковая панель

Связь

my.cnf

my.cnf

Параметры my.cnf - конфигурационного файла MySQL.

Начиная с версии 3.22 MySQL может считывать принятые по умолчанию параметры запуска для сервера и клиентов из файлов параметров. В Unix считывание принятых по умолчанию параметров MySQL производится из следующих файлов:

Имя файлаНазначение
/etc/my.cnfОбщие параметры
DATADIR/my.cnfПараметры для сервера
defaults-extra-fileФайл, указанный при помощи -defaults-extra-file=#
~/.my.cnfПараметры для пользователя

DATADIR является каталогом данных MySQL (обычно '/usr/local/mysql/data' для бинарной установки или '/usr/local/var' для установки из исходных текстов). Обратите внимание, что это тот каталог, который был задан во время настройки, а не указанный при помощи –datadir при запуске mysqld! (–datadir не оказывает влияния на просмотр файлов параметров сервером, так как их просмотр происходит до обработки аргументов командной строки).

MySQL пытается прочитать файлы параметров в указанном выше порядке. Если существует несколько таких файлов, то параметр, указанный в файле, идущем позже, имеет преимущество над таким же параметром, указанным в файле, расположенном ранее. Параметры, указанные в командной строке, обладают более высоким приоритетом по отношению к параметрам, указанным в любом из файлов параметров. Некоторые параметры можно задавать при помощи переменных окружения. Параметры, указанные в командной строке или в файлах параметров, обладают преимуществом по отношению к переменным окружения.

Приводим список программ, поддерживающих файлы параметров: mysql, mysqladmin, mysqld, mysqld_safe, mysql.server, mysqldump, mysqlimport, mysqlshow, mysqlcheck, myisamchk и myisampack.

Любой параметр, который может быть задан в командной строке при запуске программы MySQL, может быть также задан в файле параметров (без предваряющего двойного слэша). Чтобы получить список доступных параметров, следует запустить программу с параметром –help.

Параметры my.cnf MySQL 5.5 (кодировки UTF8)

С версии MySQL 5.5.3 рекомендуется использовать кодировку utf8mb4_unicode_ci.
  • Что такое utf8mb4? utf8mb4 - набор символов, используемый для хранения 4 байта в MySQL, внедрён в 2010 году начиная с версии 5.5.3. Главное отличие utf8mb4 от utf8 в том, что utf8mb4 задействует более полные возможности кодировки UTF8, позволяя поддерживать все языки и специальные символы, не поддерживающие utf8 (например японский язык или смайлики из ios - emoji). Однако, как можно догадаться, если utf8mb4 использует для хранения 1 символа 4 байта, то база данных может увеличиться в размере, если сравнивать с точно такой же базой данных в utf8. В наше время немного увеличенный размер базы данных не является существенно проблему, по этому, если вы стоите перед выбором использовать utf8 или utf8mb4 набор символов - используйте utf8mb4.

Некоторые параметры my.cnf в MySQL 5.5.22 устарели (deprecated) и были заменены другими и удалены. Например, изменение кодировки по умолчанию в my.cnf в секции [mysqld] будет выглядит так:

[mysqld]
#...
character_set_server = utf8 # ранее default-character-set = utf8 и character_set_server = utf8
collation-server = utf8_unicode_ci # ранее collation_server = utf8_unicode_ci
collation-server = utf8_unicode_ci или collation-server = utf8_general_ci? utf8_unicode_ci поддерживает expansions в отличии от utf8_general_ci, то есть умеет сопоставлять один символ нескольким (например - в Германии ß = ss ). Подобнее Unicode Character Sets.
Сравнение utf8_unicode_ci _ci без учета регистра, utf8_unicode_bin _bin с учетом регистра.

Параметры my.cnf

> ee /etc/my.cnf

# The following options will be passed to all MySQL clients
[client]
#password       = your_password
port            = 3306
socket          = /tmp/mysql.sock

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
skip-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
default-character-set = utf8
character_set_server = utf8
collation_server = utf8_unicode_ci
bind-address = 127.0.0.1

# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (via the "enable-named-pipe" option) will render mysqld useless!
#
#skip-networking

#...

Тюнинг

  • perl скрипт mysqltuner.pl анализирует текущее состояние MySQL и дает рекомендации по настройкам.
  • tuning-primer.sh также дает советы по настройке MySQL

my.cnf.txt · Последние изменения: 2015/11/05 09:27 (внешнее изменение)