Как установить MySQL 5.6 на Ubuntu 12.10 (включая плагин memcached)
Кратко: шаг за шагом устанавливаем разработческую сборку MySQL 5.6.8-rc на Ubuntu 12.10 вручную, отключаем AppArmor, создаём системного пользователя mysql, распаковываем пакет в /usr/local/mysql, инициализируем базу, настраиваем автозапуск и задаём пароль root. Внизу — дополнительные советы по плагину memcached, проверкам, откату и списки проверок для администраторов.
Version 1.0
Author: Falko Timme
Follow me on Twitter
MySQL 5.6 предлагает улучшения производительности по сравнению с MySQL 5.5. Поскольку в момент написания стабильного релиза нет, для тестирования используются разработческие сборки с официальной страницы загрузок MySQL. Этот документ показывает, как установить MySQL 5.6.8rc1 (Linux Generic) на сервер Ubuntu 12.10.
Важно: этот материал предоставляется без каких-либо гарантий. Это один из способов настройки системы — существует много альтернатив.
Предварительное замечание
В примерах используется хост server1.example.com с IP 192.168.0.100. Замените эти значения на свои.
Перед началом убедитесь, что на системе не установлены другие версии MySQL (включая пакеты из репозиториев Ubuntu). Наличие другой установки нарушит описанные шаги.
Поскольку все команды нужно запускать с правами root, вы можете либо ставить sudo перед каждой командой, либо сразу стать root:
sudo su 1. Отключение AppArmor
Если AppArmor запущен, вручную установленный MySQL 5.6 может не стартовать. Отключите AppArmor перед установкой:
/ etc / init.d / apparmor stop
update-rc.d -f apparmor remove
apt-get remove apparmor apparmor-utils
Важно: это отключает механизм защиты на хосте. Если AppArmor необходим на продакшене, настройте профиль для новой установки MySQL вместо полного удаления.
2. Установка MySQL 5.6.8rc1 (Linux Generic)
Сначала создадим системную группу и пользователя mysql:
groupadd mysql
useradd -r -g mysql mysql
Установим зависимость libaio1:
apt-get install libaio1Будем устанавливать MySQL в /usr/local/mysql, где /usr/local/mysql/data станет каталогом данных (в нём хранятся базы).
Перейдём в /usr/local и загрузим пакет:
cd /usr/local
wget -O mysql-5.6.8-rc-linux2.6-x86_64.tar.gz http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.8-rc-linux2.6-x86_64.tar.gz/from/http://cdn.mysql.com/
Распакуем пакет, переименуем каталог в mysql и сменим владельца на mysql:
tar xvfz mysql-5.6.8-rc-linux2.6-x86_64.tar.gz
mv mysql-5.6.8-rc-linux2.6-x86_64 mysql
cd mysql
chown -R mysql .
chgrp -R mysql .
Запустим скрипт инициализации для создания служебных баз (включая базу mysql):
scripts/mysql_install_db --user=mysqlПосле этого изменим некоторые права:
chown -R root .
chown -R mysql data
MySQL использует файл my.cnf внутри /usr/local/mysql, поэтому дополнительный my.cnf создавать не обязательно. Если нужно — редактируйте существующий my.cnf.
В пакете есть init-скрипт support-files/mysql.server. Скопируйте его в /etc/init.d:
cp support-files/mysql.server /etc/init.d/mysql.serverОн уже помечен как исполняемый, менять права не нужно.
Запустите MySQL:
/etc/init.d/mysql.server startЧтобы MySQL стартовал автоматически при загрузке:
update-rc.d mysql.server defaultsБинарные утилиты MySQL (mysql, mysql_secure_installation и др.) находятся в /usr/local/mysql/bin, который не входит в PATH. Чтобы удобно вызывать команды без полного пути, создайте символические ссылки:
ln -s /usr/local/mysql/bin/* /usr/local/bin/Наконец, задайте пароль root с помощью вспомогательной утилиты:
mysql_secure_installationНиже приводится примерный диалог утилиты (интерактивный вывод). Примеры ответов помечены стрелками. Содержимое представлено как пример поведения скрипта:
root@server1:/usr/local/mysql# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MySQL to secure it, we'll need the current
password for the root user. If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): <-- ENTER
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.
Set root password? [Y/n] <-- ENTER
New password: <-- yourrootsqlpassword
Re-enter new password: <-- yourrootsqlpassword
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] <-- ENTER
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] <-- ENTER
... Success!
By default, MySQL comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] <-- ENTER
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] <-- ENTER
... Success!
All done! If you've completed all of the above steps, your MySQL
installation should now be secure.
Thanks for using MySQL!
Cleaning up...
root@server1:/usr/local/mysql#После выполнения mysql_secure_installation ваша установка станет более безопасной.
Важное замечание
Если вы планируете работать с плагином memcached (см. заголовок), обратите внимание на совместимость версии и наличие требуемых библиотек. В следующих разделах — рекомендации и проверки.
3. Проверки после установки
Минимальный набор проверок, чтобы убедиться, что всё работает:
- Сервис запущен:
/etc/init.d/mysql.server status- Подключение к серверу локально (тест):
mysql -u root -p -e "SHOW DATABASES;"- Список установленных плагинов:
mysql -u root -p -e "SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS;"- Создание тестовой базы и таблицы:
mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS test_install; USE test_install; CREATE TABLE t (id INT PRIMARY KEY, txt VARCHAR(50)); INSERT INTO t VALUES (1,'ok'); SELECT * FROM t;"Все эти команды должны выполняться без ошибок.
Плагин memcached — примечания и проверка
MySQL 5.6 предоставляет возможности интеграции с протоколом memcached через соответствующие плагины/мейкер-надстройки (см. официальную документацию MySQL для вашей сборки). Общий план действий:
- Проверьте в INFORMATION_SCHEMA.PLUGINS наличие плагина, отвечающего за memcached.
- Если плагин не загружен, обратитесь к официальной документации MySQL 5.6 по способу установки плагинов для вашей сборки (встроенный плагин vs отдельная библиотека).
- После загрузки плагина проверьте его статус через SHOW PLUGINS и попробуйте простую set/get через клиент, совместимый с протоколом memcached.
Пример проверки наличия плагина (уже упомянут выше):
mysql -u root -p -e "SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE '%memcache%';"Если плагин отсутствует, не принимайте решения о дальнейших шагах без сверки с релиз-нотами и документацией для именно вашей упаковки MySQL 5.6.
Альтернативные подходы к установке (когда ручная установка не нужна)
- Установка из официальных пакетов .deb (если доступны для вашей версии Ubuntu). Это упрощает управление зависимостями и автозапуск.
- Установка через APT-репозиторий Oracle/MySQL: добавление официального репозитория и установка через apt-get — проще для обновлений.
- Контейнеризация: собрать образ Docker с MySQL 5.6 для изоляции и быстрых тестов.
Плюсы и минусы:
- Ручная распаковка (как в этой инструкции): полный контроль, но обновления и интеграция с системой сложнее.
- Пакеты .deb / репозиторий: удобство, интеграция с системой и автоматические обновления.
- Docker: изоляция и удобство тестирования, но другие системные интеграции потребуют настройки.
Когда этот подход не подойдёт (контрпримеры)
- Если вы используете продакшен-сервер с требованиями к безопасности и централизованному управлению пакетами — ручная распаковка не оптимальна.
- Если требуется поддержка системы init/systemd специфичной версии — лучше использовать пакетную установку.
- Если на хосте уже установлены другие версии MySQL — удаление/миграция обязательны.
Руководство по откату (микро-плейбук)
- Остановите службу:
/etc/init.d/mysql.server stop- Сделайте резервную копию каталога данных (если он создан):
cp -a /usr/local/mysql/data /root/mysql-data-backup-$(date +%F)- Удалите символические ссылки (если создавали):
rm /usr/local/bin/mysql* || true- Удалите директорию установки:
rm -rf /usr/local/mysql- Восстановите пакетную версию MySQL из репозиториев или установите требуемую версию.
Замечание: всегда делайте резервные копии данных до удаления.
Критерии приёмки
- Служба mysqld успешно стартует и остаётся запущенной после рестарта сервера.
- Команда mysql выполняется локально и возвращает список системных баз.
- Пользователь root имеет установленный пароль, anonymous-пользователи и тестовая база удалены.
- Для задач с memcached: соответствующий плагин загружен и отвечает на простые операции.
Тестовые сценарии / Критерии приёмки (acceptance)
- Подключение по локальному сокету: mysql -u root -p -e “SELECT 1;” => 1
- Создание БД, таблицы, запись и чтение данных — успешны.
- SHOW PLUGINS не содержит ошибок и показывает статус плагинов.
Роли и чек-листы
Администратор (DevOps):
- Проверить отсутствие других MySQL-пакетов.
- Отключить AppArmor или подготовить профиль.
- Создать пользователя и группу mysql.
- Установить libaio1.
- Распаковать и инициализировать БД.
- Настроить автозапуск и PATH.
- Запустить mysql_secure_installation.
- Прогнать тесты приёмки.
Разработчик:
- Подключиться к локальному MySQL и проверить схемы.
- Запустить интеграционные тесты приложения.
- Проверить работу memcached-интеграций (если используются).
Возможные ошибки и устранение неполадок
Проблема: MySQL не стартует.
- Проверьте логи в /usr/local/mysql/data/ и /var/log/syslog.
- Отключите AppArmor или настройте профиль для новой установки.
- Убедитесь, что права на каталоги корректны: владелец root, данные — mysql.
Проблема: команды mysql не находятся.
- Убедитесь, что вы создали символические ссылки и /usr/local/bin доступен в PATH.
Проблема: плагин memcached не загружается.
- Проверьте совместимость плагина и сборки MySQL.
- Смотрите вывод SHOW PLUGINS и ошибки в логах.
- Ознакомьтесь с официальной документацией MySQL 5.6 по установке плагинов.
Советы по безопасности
- Не разрешайте удалённый вход root в продакшене.
- Отключайте (и удаляйте) тестовые/анонимные учётные записи.
- Храните резервные копии данных и конфигураций в защищённом хранилище.
- Рассмотрите использование TLS для клиентских подключений, если требуется удалённый доступ.
Совместимость и миграция
- Ubuntu 12.10 — достаточно старая версия ОС. Для продакшена рассмотрите более новые LTS-версии Ubuntu и поддерживаемые версии MySQL.
- Перед миграцией данных проверяйте совместимость структур таблиц и движков (InnoDB/MyISAM).
Короткая методология установки (шаги)
- Проверить отсутствие конфликтующих пакетов.
- Отключить AppArmor (или настроить профиль).
- Создать систему пользователя mysql.
- Установить зависимости (libaio1).
- Загрузить и распаковать архив в /usr/local.
- Инициализировать базу данных.
- Скопировать init-скрипт и включить автозапуск.
- Задать пароль root и убрать тестовые пользователи/базы.
- Прогнать тесты и (при необходимости) активировать плагин memcached.
Краткое резюме
Вы установили MySQL 5.6 вручную на Ubuntu 12.10. Процесс включает отключение AppArmor, создание пользователя mysql, распаковку архива, инициализацию, настройку автозапуска и базовую безопасность через mysql_secure_installation. В статье также приведены проверки, сценарии тестирования, варианты установки, план отката и рекомендации по работе с плагином memcached.
Важное: для боевых сред предпочтительнее использовать пакетные установки, официальные репозитории или контейнеры, а не ручную распаковку.
Похожие материалы
Как устроить идеальную вечеринку для просмотра ТВ
Как распаковать несколько RAR‑файлов сразу
Приватный просмотр в Linux: как и зачем
Windows 11 не видит iPod — способы исправить
PS5: как настроить игровые пресеты