Установка MySQL 5.6 из официального Yum-репозитория

В октябре 2013 разработчики MySQL официально запустили поддержку yum-репозиториев. Теперь пользователи имеют доступ к исходному коду последних и лучших версий MySQL.

В данном руководстве речь пойдет об установке MySQL 5.6 на свежий сервер CentOS 6, а также об оптимизации настройки СУБД MySQL.

Примечание: со всеми преимуществами этой версии MySQL можно ознакомиться по этой ссылке.

Установка MySQL

Файл yum-репозитория нужно загрузить с веб-сайта разработчиков MySQL. После установки запустите yum update, чтобы гарантированно использовать последний релиз MySQL 5.6, а также обновить систему безопасности. Кроме того, Yum установит все зависимости, что делает процесс установки немного проще.

Итак, для начала перейдите по этой ссылке и кликните на ссылку загрузки для Red Hat Enterprise Linux 6/Oracle Linux 6.

Скопируйте адрес ссылки «No thanks, just start my download».

Войдите на сервер и скачайте этот файл. Ниже приведен пример ссылки; измените этот URL, если на момент выполнения руководства появилась более новая версия СУБД.

wget http://dev.mysql.com/get/mysql-community-release-el6-3.noarch.rpm/from/http://repo.mysql.com/

Установите репозиторий локально:

sudo yum localinstall mysql-community-release-el6-*.noarch.rpm

Теперь официальный репозиторий установлен на сервер. Этот репозиторий содержит MySQL Server, инструмент администрирования MySQL Workbench и драйвер ODBC. Установите MySQL Server:

sudo yum install mysql-community-server

Запустите MySQL:

sudo service mysqld start

Настройте автоматический запуск MySQL при перезагрузке сервера:

sudo chkconfig mysqld on
chkconfig --list mysqld

Готово!

Тонкая настройка MySQL

Команда разработчиков MySQL постаралась сделать настройки СУБД «из коробки» максимально удобными, потому  MySQL 5.6 требует лишь незначительных изменений настроек. Все эти настройки можно добавить в раздел [mysqld] файла /etc/my.cnf.

sudo vim /etc/my.cnf

  • Рекомендуется задать параметру innodb_buffer_pool_size 50-80% системной памяти. Этот объем позволит MySQL кэшировать больше данных (по умолчанию это 128M) и может значительно улучшить производительность.
  • По умолчанию MySQL имеет очень маленькие журналы транзакций (которые используются для восстановления после сбоя). В процессе разработки небольшие лог-файлы помогут сэкономить место, но в производстве вы их необходимо увеличить их. За эти файлы отвечает параметр isinnodb_log_file_size, рекомендуемый диапазон 128M-4G.
  • При использовании SSD-накопителей последовательный ввод-вывод работает не быстрее, чем случайный. Это означает, можно частично отключить оптимизацию и сэкономить немного CPU; для этого используйте параметр isinnodb_flush_neighbors = 0.
  • По умолчанию MySQL чрезвычайно осторожно относится к данным, не теряя никаких данных даже в ущерб мощности. Это негативно сказывается на производительности, потому в облачной среде рекомендуется допустить кратковременную потерю данных, чтобы предотвратить сбои питания. Для этого измените параметр isinnodb_flush_log_at_trx_commit=2.
  • UTF-8 – лучшее решение для хранения юникодных символов в MySQL. Его можно настроить при помощи параметров character-set-server=utf8mb4 и collation-server=utf8mb4_general_ci. Индивидуальные базы данных, таблицы и столбцы при необходимости смогут переписывать эти парамтеры.
  • Многие системные администраторы рекомендуют установить часовой пояс серверов GMT; это делается при помощи параметра timezone=GMT.
  • Для обеспечения совместимости со старыми версиями MySQL по умолчанию позволяет неправильные значения и значения, не входящие в заданный диапазон. Рекомендуется исправить это, включив новые, более строгие опции SQL_MODE.

В результате файл имеет такой вид:

innodb_buffer_pool_size=2G
innodb_log_file_size=256M
innodb_flush_neighbors=0
innodb_flush_log_at_trx_commit=2
# Default to UTF-8 for text columns
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
# Set the default timezone to GMT.
# This is a common recommended practice, but can also remove this line
# If your date/time values appear incorrect.
timezone=GMT
# This configuration item is optional:
# It makes MySQL more strict and rejects invalid values.
# You may need to remove this line for legacy applications.
sql-mode="STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ONLY_FULL_GROUP_BY"

Заключение

Готово! Базовая установка MySQL 5.6 из официального Yum-репозитория завершена. Команда MySQL заинтересована в ваших отзывах. Если у вас возникли вопросы или есть какие-либо предложения, пожалуйста, посетите этот форум.

Tags: , , , , , , ,

Добавить комментарий