Примерно, в начале октябре 2013 года, команда разработчиков MySQL официально запустила yum репозитарий, т.е. теперь мы можем смело обновляться до последних версии данной базы данных непосредственно с источника!
В этом руководстве я кратко расскажу об особенностях установки MySQL 5.6 на Centos 6, и также объясню пару моментов по оптимизации производительности.
Перед выполнением данной инструкции рекомендую ознакомиться с изменениями произведенными в MySQL 5.6. Если все прочитанное вас устраивает, то переходим непосредственно к установке…
- Сразу о проблемах
1) MySQL 5.6 стал достаточно ресурсоемкий, в особенности по памяти.
Для нормальной работы с настройками по умолчанию, нам понадобиться минимум 2G памяти. Я запустил данную версию базы и на инстансе с 512мб, однако как-то комментировать работу не могу. Синтетические тесты, по подключению и небольшой выборке система прошла, на этом тесты закончились, в продуктив система не вводилась.
2) Скорее всего будет конфликт пакетов, в частности «php-mysql-5», т.к. для 5.6 он еще не вышел, а существующий по крайней мере у меня ругается так:
Error: Package: mysql-bench-5.5.34-1.el6.remi.x86_64 (@remi) Requires: real-mysql(x86-64) = 5.5.34-1.el6.remi Removing: mysql-5.5.34-1.el6.remi.x86_64 (@remi) real-mysql(x86-64) = 5.5.34-1.el6.remi Obsoleted By: mysql-community-client-5.6.14-3.el6.x86_64 (mysql-community) Not found Error: Package: php-mysql-5.4.22-1.el6.remi.x86_64 (@remi) Requires: libmysqlclient.so.18(libmysqlclient_16)(64bit) Removing: mysql-libs-5.5.34-1.el6.remi.x86_64 (@remi) libmysqlclient.so.18(libmysqlclient_16)(64bit) Obsoleted By: mysql-community-libs-5.6.14-3.el6.x86_64 (mysql-community) Not found
- Установка MySQL
Для начала, перейдем по ссылке http://dev.mysql.com/downloads/repo/ , и нажмем на ссылку для загрузки «Red Hat Enterprise Linux 6 / Oracle Linux 6» и скачаем файл по ссылке «No thanks, just start my download.»
wget http://dev.mysql.com/get/mysql-community-release-el6-4.noarch.rpm yum localinstall mysql-community-release-el6-*.noarch.rpm
Проверим, что необходимый нам репозитарий «mysql-community» успешно полключился к системе
[root@develop spions]# yum repolist repo id repo name status base CentOS-6 - Base 6381 epel Extra Packages for Enterprise Linux 6 - x86_64 10023 extras CentOS-6 - Extras 13 mysql-community MySQL Community Server 19 nginx nginx repo 47 updates CentOS-6 - Updates
Пробуем сделать «yum install mysql-community-server«, скорее всего получаем конфликт описанный выше в «проблемах», поэтому делаем иначе:
yum remove mysql-libs-5.5* mysql-community-server mysql-community-client mysql-community-common mysql-community-libs #ставим назад расширение для php с игнорированием конфликта. У меня php 5.4 из remi. yum --enablerepo=remi --skip-broken install php-mysql*
Пробуем сделать «service mysqld restart«.
Если у вас 512mb оперативной памяти, то скорее всего будет ошибка запуска и в логах будет сообщение вида
«[ERROR] InnoDB: Cannot allocate memory for the buffer pool»
Решение выставить в /etc/my.cnf параметр «innodb_buffer_pool_size = 32M», при этом память утилизируется практически полностью.
top Mem: 502456k total, 494968k used, 7488k free, 2420k buffers
Некоторые администраторы предлагают подцепить к серверу swap файл, увеличив тем самым доступную память, особенно это актуально для хостинга на SSD, но для меня это не самый «правильный» выход из положения.
После изменений «innodb_buffer_pool_size«, мы скорее всего сможем запуститься, так что осталось дело за малым — сменить пароль для mysql root пользователя:
/usr/bin/mysqladmin -u root password 'YouBigPassword'
На этом инсталляция закончена.