Замена MySQL на сервере с cPanel на что-нибудь адекватное.

Небольшие заметки из личного (и не только) опыта, рекомендации
Ответить
Аватара пользователя
Raven
Бородатый сис
Бородатый сис
Сообщения: 2788
Зарегистрирован: 03 мар 2010, 15:12
ОС: RHEL 7
Откуда: Из серверной

Замена MySQL на сервере с cPanel на что-нибудь адекватное.

Сообщение Raven » 11 сен 2013, 10:21

Сервера под управлением cPanel имеют одну неприятную особенность - весь серверный софт тут ставится самой панелью, в том числе и mysql. Если просто его деинсталлировать, и поставить что-нибудь свое, например из официальных репозиториев или еще откуда-нить, то панель просто грохнет и все из своих пакетов. А таковых выбор ограничен - MySQL-5.0.x, MySQL-5.1.x, MySQL-5.5.x и судя по начинке, это - официальные бинарные сборки поставляемые Oracle. Панель позволяет выбрать один из вышеперечисленных вариантов и ВСЕ!

Так дел не падед! Ставим (Percona-server|MariaDB)! ОС подопытного кролика - RHEL6, но частично применимо и к другим дистрибутивам.

Перво-наперво сделаем резервную копию, а то мало-ли.

Код: Выделить всё

cp -Rf /var/lib/mysql /var/lib/mysql.org
cp /etc/my.cnf /etc/my.cnf.org
Отключаем MySQL от cPanel

Код: Выделить всё

/scripts/update_local_rpm_versions --edit target_settings.MySQL50 uninstalled
/scripts/update_local_rpm_versions --edit target_settings.MySQL51 uninstalled
/scripts/update_local_rpm_versions --edit target_settings.MySQL55 uninstalled
И удаляем к чертям установленное ГМО:

Код: Выделить всё

/scripts/check_cpanel_rpms --fix --targets=MySQL50,MySQL51,MySQL55
Далее нам нужен файл репозитория, для Percona это

Код: Выделить всё

[percona]
name = CentOS $releasever - Percona
baseurl=http://repo.percona.com/centos/$releasever/os/$basearch/
enabled = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-percona
gpgcheck = 1
для MariaDB все еще проще - машка уже давно есть в CentALT

Код: Выделить всё

[CentALT]
name=CentALT Packages for Enterprise Linux 6 - $basearch
baseurl=http://centos.alt.ru/repository/centos/6/$basearch/
enabled=1
gpgcheck=0
и в Atomic

Код: Выделить всё

# Name: Atomic Rocket Turtle RPM Repository for CentOS / Red Hat Enterprise Linux 6 -
# URL: http://www.atomicrocketturtle.com/
# Note: This isn't covered by ASL support. -Scott
[atomic]
name = CentOS / Red Hat Enterprise Linux $releasever - atomicrocketturtle.com
mirrorlist = http://www.atomicorp.com/mirrorlist/atomic/centos-6-$basearch
#mirrorlist = http://www.atomicorp.com/channels/atomic/centos/6/mirrors-atomic
enabled = 1
priority = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY.art.txt
gpgcheck = 1

# Almost Stable, release candidates for [atomic]
[atomic-testing]
name = CentOS / Red Hat Enterprise Linux $releasever - atomicrocketturtle.com - (Testing)
mirrorlist = http://www.atomicorp.com/mirrorlist/atomic-testing/centos-6-$basearch
enabled = 0
priority = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY.art.txt
gpgcheck = 1

# Untested, Unstable, known buggy, and incomplete packages.
[atomic-bleeding]
name = CentOS / Red Hat Enterprise Linux $releasever - atomicrocketturtle.com - (Bleeding)
baseurl = http://www.atomicorp.com/channels/atomic-bleeding/centos/$releasever/$basearch/
enabled = 0
priority = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY.art.txt
gpgcheck = 1
Создаем .repo-файл c нужным репозиторием в /etc/yum.repod.d и вперед!

Код: Выделить всё

# Percona
rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm
# CentALT
http://centos.alt.ru/pub/repository/centos/6/x86_64/centalt-release-6-1.noarch.rpm
# Atomic
rpm -Uvh http://www.atomicorp.com/channels/atomic/centos/6/x86_64/RPMS/atomic-release-1.0-16.el6.art.noarch.rpm

MariaDB:

Код: Выделить всё

yum install mariadb-server mariadb-devel
Percona-server

Код: Выделить всё

yum install Percona-Server-server-5(1|5) Percona-Server-devel-5(1|5)
для версий 5.1. или 5.5 или
yum install Percona-SQL-devel-50 Percona-SQL-server-50
для версии 5.0
Решение проблем с совместимостью.
Компоненты RHEL6 обычно собраны с расчетом на использование библиотеки mysqlclient16, а в версиях 5.5.х используется уже библиотека mysqlclient18, обратно не совместимая с предшественницей. Выхода 2 - пересобрать весь зависимый софт либо вернуть в систему mysqlclient16. Первый вариант очень геммороен в виду огромного количества зависимостей, так что мы выбираем второй. Здесь нас опять выручит репозиторий atomic, нужно лишь немного подправить /etc/yum.conf - панель добавляет в exclude параметр mysql*, то есть все что попадает под данный шаблон мы поставить не сможем, но ведь после отключения MySQL от панели это жешь более не актуально ;) .

Код: Выделить всё

sed -i 's/mysql\*//g' /etc/yum.conf
yum install mysqlclient16
Все, можем запускаться!

Код: Выделить всё

service mysql restart
chkconfig mysql on
Я не злопамятный, я просто часто ковыряю логи
Изображение
Ответить

Вернуться в «Полезные советы»