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

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


my.cnf

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

my.cnf [2015/11/05 04:27] (текущий)
Строка 1: Строка 1:
 +====== 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) ======
 +  * [[Кодировка]] - набор символов (character set, charset).
 +
 +<note important>​С версии MySQL 5.5.3 рекомендуется использовать кодировку utf8mb4_unicode_ci.</​note>​
 +
 +  * **Что такое utf8mb4?** utf8mb4 - набор символов,​ используемый для хранения 4 байта в MySQL, внедрён в 2010 году начиная с версии 5.5.3. Главное отличие utf8mb4 от utf8 в том, что utf8mb4 задействует более полные возможности кодировки UTF8, позволяя поддерживать все языки и специальные символы,​ не поддерживающие utf8 (например японский язык или смайлики из ios - emoji). Однако,​ как можно догадаться,​ если utf8mb4 использует для хранения 1 символа 4 байта, то база данных может увеличиться в размере,​ если сравнивать с точно такой же базой данных в utf8. В наше время немного увеличенный размер базы данных не является существенно проблему,​ по этому, если вы стоите перед выбором использовать utf8 или utf8mb4 набор символов - используйте utf8mb4.
 +
 +  * [[http://​dev.mysql.com/​doc/​refman/​5.5/​en/​server-options.html|5.1.2. Server Command Options]]
 +Некоторые параметры my.cnf в MySQL 5.5.22 устарели (deprecated) ​ и были заменены другими и удалены. Например,​ изменение кодировки по умолчанию в my.cnf в секции [mysqld] будет выглядит так:
 +<​file>​
 +[mysqld]
 +#...
 +character_set_server = utf8 # ранее default-character-set = utf8 и character_set_server = utf8
 +collation-server = utf8_unicode_ci # ранее collation_server = utf8_unicode_ci
 +
 +</​file>​
 +<note important>​collation-server = utf8_unicode_ci или collation-server = utf8_general_ci?​ utf8_unicode_ci поддерживает expansions в отличии от utf8_general_ci,​ то есть умеет сопоставлять один символ нескольким (например - в Германии &#223; = ss ). Подобнее [[http://​dev.mysql.com/​doc/​refman/​5.0/​en/​charset-unicode-sets.html|Unicode Character Sets]].</​note>​
 +<note tip>​Сравнение utf8_unicode_ci **_ci** без учета регистра,​ utf8_unicode_bin **_bin** с учетом регистра.</​note>​
 +
 +
 +====== Параметры my.cnf ======
 +<​code>​
 +> 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
 +
 +#...
 +</​code>​
 +====== Тюнинг ======
 +  * perl скрипт [[http://​blog.mysqltuner.com/​download/​|mysqltuner.pl]] анализирует текущее состояние MySQL и дает рекомендации по настройкам.
 +  * [[http://​man-linux.ru/​wp-content/​plugins/​wp-downloadMonitor/​download.php?​id=5|tuning-primer.sh]] также дает советы по настройке MySQL
  
my.cnf.txt · Последние изменения: 2015/11/05 04:27 (внешнее изменение)