Както проучихме в предишната ни статия от нашата MySQL Performance Series:MySQL срещу MariaDB има много малко недостатъци при използването на MariaDB спрямо стандартния MySQL. Нашите MariaDB с висока достъпност се доказаха като достоен наследник с лесно смекчавани недостатъци. Като последна статия от нашата поредица ще се съсредоточим върху надграждането до различни версии на MySQL и MariaDB на следните сървъри:
CentOS 6/7
- MySQL към MariaDB на CentOS 6/7 с cPanel
- MySQL към MariaDB на CentOS 7 с Plesk Onyx 17
- MySQL 5.1-5.5 до MariaDB 5.5 на CentOS 6
- MariaDB 5.5 до MariaDB 10.0 на CentOS 6
Ubuntu 14.04/16.04
- MySQL 5.1-5.5 до MariaDB 5.5 на Ubuntu 14.04
- MySQL 5.7 до MariaDB 10.2 на Ubuntu 16.04
Избор на план за надграждане на MariaDB
Изборът на правилния план за надграждане изисква да се определи коя версия на MySQL се изпълнява на предвидената система. Универсален метод за определяне коя версия на MySQL сървърът работи в момента е да се запита самия сървър, за да докладва версията. Това работи по същия начин въпреки дистрибуцията на Linux, работеща на сървъра:
mysql -h localhost -e 'ПОКАЗВАНЕ НА ПРОМЕНЛИВИ КАТО "версия"\G'
Примерен изход:
~ $ mysql -h localhost -p -e 'ПОКАЗВАНЕ НА ПРОМЕНЛИВИ КАТО "версия"\G'
************************* **** 1. ред ***************************
Име_променлива:версия
Стойност:5.5.61 -MariaDB
След като идентифицирате вашата версия на MySQL, използвайте ключа по-долу, за да намерите правилната процедура за надстройка за вашия конкретен сървър. Някои версии на MySQL изискват надстройка до MariaDB 5.5, преди да надстроите до версиите на MariaDB 10.x.
Надстройване от MySQL до MariaDB
Процесът на надстройка е подобен между повечето типове сървъри. Има разлики с конкретните команди, които се изпълняват, но цялостната процедура следва тази Обща процедура за надстройка:
- Определете точен график за престой.
- Осигурете адекватни резервни копия.
- Премахнете съществуващите MySQL двоични файлове/пакети.
- Инсталирайте правилното хранилище на MariaDB.
- Изчистете кеша на хранилището, за да изтриете старите данни за пакета.
- Инсталирайте пакети MariaDB чрез системния мениджър на пакети.
- Стартирайте MariaDB, като стартирате услугата MySQL.
- Изпълнете скрипт за надграждане на MySQL.
- Потвърдете, че базите данни MySQL са достъпни и данните са правилни
По-долу сме включили специфични процедури за различни системи Liquid Web. Преди да изберете вашата приложима процедура за надстройка, нека прегледаме първите две стъпки в горната Обща процедура за надстройка . Тези стъпки обикновено са универсални и са от решаващо значение за успеха на всеки план за поддръжка.
Определете точен график на престой
Планирането на правилни прозорци за поддръжка за извършване на промени, засягащи производствената среда, може да бъде трудно. Прозорецът за събитие за поддръжка трябва да включва достатъчно време за изпълнение на всички необходими задачи в плана за поддръжка, плюс всяко отстраняване на неизправности и допълнително време за завършване на плана за възстановяване, ако е необходимо.
Уверете се, че са подходящи резервни копия
Планът за архивиране на поддръжка е нещо повече от просто архивиране на файлове и бази данни. Също така е необходимо да се формира план за възстановяване, който очертава процеса за възстановяване на средата в първоначалното й състояние преди началото на поддръжката.
Събитията при поддръжка понякога могат да доведат до непредвидени проблеми с алтернативата за връщане към резервни копия. Наличието както на валиден план за архивиране, така и на валиден план за възстановяване за възстановяване на услугите е критичен компонент за успешната поддръжка. По-долу са дадени очертания на Примерен план за архивиране и Примерен план за връщане който може да се използва с описаната процедура за надстройка на тази статия.
Примерен план за архивиране
+Примерен план за връщане
+MySQL към MariaDB на CentOS 6/7 с cPanel
Всички изображения на сървъра на Liquid Web cPanel включват вече инсталиран MariaDB 5.5. Това включва сървърни изображения на CentOS 6 и CentOS 7. Няма нужда от надграждане, освен ако не се изисква серията MariaDB 10.x. За ръчно надстройване, процедурите, предоставени от MariaDB тук:Надстройка от MariaDB 5.5 до MariaDB 10.0, в противен случай cPanel предоставя лесен интерфейс с точка и щракване, който върши цялата тежка работа вместо вас. Следвайте една от процедурите по-долу във форма „Само текст“ или в графична форма.
Инструкции за надграждане на cPanel MariaDB:
Стъпка А) Потвърдете, че има резервни копия, преди да продължите в насроченото време.
Стъпка Б) Влезте в WHM и заредете надстройките на MySQL/MariaDB страница:
① Използвайте полето за бързо търсене вляво и въведете: mysql upgrade
② Намерете и щракнете върху Надстройки на MySQL/MariaDB връзка.
③ Избрахте желаната от вас версия на MariaDB.
④ Щракнете върху бутона Напред.
Стъпка C) Изчакайте „Предупреждения за надстройка ” страница, за да завършите зареждането.
① Прочетете и потвърдете всяко предупредително съобщение, като активирате всяко клетче за отметка.
② Щракнете върху бутона Продължи.
Стъпка D) Изчакайте „Тип надстройка ” страница, за да завършите зареждането.
① Изберете Unattended Upgrade за безпроблемно изживяване на надстройката.
② Щракнете върху бутона Продължи.
Стъпка E) Изчакайте процеса на надстройка да завърши.
MySQL към MariaDB на CentOS 7 с Plesk Onyx 17
Всички сървърни изображения на Liquid Web CentOS 7 включват вече инсталиран MariaDB 5.5, включително нашите сървъри CentOS 7 Plesk Onyx 17. Няма нужда от надграждане, освен ако не се изисква серията MariaDB 10.x. В тези случаи следвайте стандартните процедури за надграждане на MariaDB Plesk тук:Как да надстроите MySQL 5.5 до 5.6/5.7 или MariaDB 5.5 до 10.0/10.1/10.2 на Linux
MySQL 5.1-5.5 до MariaDB 5.5 на CentOS 6
Поради ограничение на съвместимостта MySQL 5.1, 5.2, 5.3 и 5.5.x трябва да бъде надстроен до MariaDB 5.5 и не може да бъде надстроен директно до MariaDB 10.0. Този план за надстройка ще премине през получаването на някоя от тези оттеглени версии на MySQL, надстроена до MariaDB 5.5. След като надстройката до MariaDB 5.5 приключи, следвайте Как да надстроите MariaDB 5.5 до MariaDB 10.0 на CentOS 6 инструкции за продължаване на процеса на надстройка до MariaDB 10.
Стъпка 1: Потвърдете, че има резервни копия, преди да продължите в насроченото време.
Стъпка 2: Спрете услугата MySQL.
услуга mysqld stop
Примерен изход:
~ $ service mysqld restart
Спиране на mysqld:[ OK ]
Стъпка 3: Инсталирайте хранилището MariaDB 5.5 за CentOS 6
cat [mariadb]
Тази команда няма видим изход, освен ако не възникнат грешки.
name =MariaDB
baseurl =http://yum.mariadb.org/5.5/centos6 -amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF
Стъпка 4: Почистете кеша на хранилището yum
мм чисти всичко
Примерен изход:
~ $ yum clean all
Заредени плъгини:fastestmirror
Почистване на репозитории:основни екстри актуализации на mariadb
Почистване на всичко
Почистване на списък с най-бързите огледала
Стъпка 5: Премахнете MySQL пакетите
yum премахнете mysql-server mysql
Примерен изход:
Изпълнение на теста на транзакцията
Отрязано за краткост.
Тестът на транзакцията бе успешен
Изпълнение на транзакцията
Изтриване :mysql-server-5.1.73-8.el6_8.x86_64 1/1
предупреждение:/var/ log/mysqld.log запазен като /var/log/mysqld.log.rpmsave
Проверка:mysql-server-5.1.73-8.el6_8.x86_64 1/1
Премахнато:
mysql -server.x86_64 0:5.1.73-8.el6_8
Завършено!
Стъпка 6: Инсталирайте MariaDB-сървъра иMariaDB-клиент пакети чрез yum.
yum инсталирайте MariaDB-сървър MariaDB-client -y
Примерен изход:Инсталиран:
Отрязано за краткост.
MariaDB-client.x86_64 0:10.1.35-1.el6 MariaDB-compat.x86_64 0:10.1.35-1.el6 MariaDB-server.x86_64 0:10.1.35 -1.el6
Инсталирана зависимост:
MariaDB-common.x86_64 0:10.1.35-1.el6 boost-program-options.x86_64 0:1.41.0-28.el6
galera .x86_64 0:25.3.23-1.rhel6.el6 jemalloc.x86_64 0:3.6.0-1.el6
Заменен:
mysql-libs.x86_64 0:5.1.73-8.el6_8
Пълно!
Стъпка 7: Рестартирайте услугата MySQL
стартиране на услугата mysql
Примерен изход:
~ $ service mysql start
Стъпка 8: Изпълнете инструмента за надграждане на MySQL
Стартиране на MariaDB.180808 18:21:13 mysqld_safe Регистриране в '/var/lib/mysql/cent6.hostname.err'.
180808 18:21:13 mysqld_safe Стартиране на mysqld демон с бази данни от /var/lib/mysql
УСПЕХ!
mysql_upgrade
Примерен изход:
~ $ mysql_upgrade
Отрязано за краткост.
Открита е надстройка на MySQL
Фаза 1/4:Коригиране на изгледи от mysql
mysql
mysql.columns_priv OK
mysql.db OK
mysql.event OK
mysql.func OK
mysql.time_zone_leap_second OK
mysql.time_zone_name OK
mysql.time_zone_transition OK
mysql.time_zone_transition_type
Фаза 4/4:Изпълнение на 'mysql_fix_privilege_tables'
OK
Стъпка 9: Потвърдете, че сървърът на MariaDB работи според очакванията
mysql -e 'ПОКАЗВАНЕ НА ПРОМЕНЛИВИ КАТО "версия"\G'
Примерен изход:
~ $ mysql -e 'ПОКАЗВАНЕ НА ПРОМЕНИВИ КАТО "версия"\G'
****************************** 1 . ред ***************************
Име на променлива:версия
Стойност:5.5.61-MariaDB
Стъпка 10: Надстройката е завършена, проверете дали вашите бази данни съществуват и работят.
[ По избор ] следвайте инструкциите Как да надстроите MariaDB 5.5 до MariaDB 10.0 на CentOS 6.
MariaDB 5.5 до MariaDB 10.0 на CentOS 6
Стъпка 1: Потвърдете, че има резервни копия, преди да продължите в насроченото време.
Стъпка 2: Премахнете всички пакети на MariaDB.
yum remove MariaDB-*
Примерен изход:Изпълнение на тест за транзакция
Отрязано за краткост.
Тест на транзакцията е успешен
Изпълнение на транзакция
Изтриване:MariaDB-server-5.5.61-1.el6.x86_64 1/2
Изтриване:MariaDB-client-5.5.61-1.el6.x86_64 2/2
Проверка:MariaDB-server-5.5.61-1.el6.x86_64 1/2
Проверка:MariaDB- client-5.5.61-1.el6.x86_64 2/2
Премахнато:
MariaDB-client.x86_64 0:5.5.61-1.el6 MariaDB-server.x86_64 0:5.5.61-1 .el6
Завършено!
Стъпка 3: Премахнете съществуващото хранилище на MariaDB.
rm -f /etc/yum.repos.d/MariaDB*.repo
Тази команда няма видим изход, освен ако не възникнат грешки.
Стъпка 4: Създайте MariaDB 10.O Yum файл с хранилище.
cat [mariadb]
Тази команда няма видим изход, освен ако не възникнат грешки.
name =MariaDB
baseurl =http://yum.mariadb.org/10.0/centos6 -amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF
Стъпка 5: Почистете кеша на Yum.
мм чисти всичко
Примерен изход:
~ $ yum clean all
Заредени плъгини:fastestmirror
Почистване на репозитории:основни екстри актуализации на mariadb
Почистване на всичко
Почистване на списък с най-бързите огледала
код>
Стъпка 6: Инсталирайте MariaDB-сървър и MariaDB-клиент пакет чрез Yum.
yum инсталирайте MariaDB-сървър MariaDB-client
Примерен изход:
Отрязано за краткост.
Изпълнение на тест за транзакция
Тест на транзакцията бе успешен
Изпълнение на транзакция
Инсталиране:MariaDB-client-10.0.36-1.el6.x86_64 1 /2
Инсталиране:MariaDB-server-10.0.36-1.el6.x86_64 2/2
Проверка:MariaDB-server-10.0.36-1.el6.x86_64 1/2
Проверка:MariaDB-client-10.0.36-1.el6.x86_64 2/2
Инсталирано:
MariaDB-client.x86_64 0:10.0.36-1.el6 MariaDB-server.x86_64 0:10. .36-1.el6
Завършено!
Стъпка 7: Стартирайте услугата MySQL.
стартиране на услугата mysql
Стъпка 8: Изпълнете скрипта за надграждане на MySQL.
mysql_upgrade
Стъпка 9: Надстройката е завършена, проверете дали вашите бази данни съществуват и работят.
MySQL 5.1-5.5 до MariaDB 5.5 на Ubuntu 14.04
Стъпка 1: Потвърдете, че има резервни копия, преди да продължите в насроченото време.
Стъпка 2: Инсталирайте хранилището MariaDB 5.5 с този едноред, той ще инсталира необходимите необходими инструменти (ако липсва), Ubuntu 14.04 GPG ключ и MariaDB 5.5 хранилище, докато актуализира кеша на пакета apt.
sudo apt-get install software-properties-common -y
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
sudo add -apt-repository 'deb [arch=amd64,i386,ppc64el] http://ftp.osuosl.org/pub/mariadb/repo/5.5/ubuntu trusty main'
sudo apt-get update
Примерен изход:~ $ sudo apt-get install software-properties-common -y> /dev/null
Отрязано за краткост.
~ $ sudo apt-key adv --recv-keys - -keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
Изпълнение:gpg --ignore-time-conflict --no-options --no-default-keyring --homedir /tmp/tmp.PtpHIXMNvY - -no-auto-check-trustdb --trust-model винаги --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --recv-keys --keyserver hkp:// keyserver.ubuntu.com:80 0xcbcb082a1bb943db
gpg:искане на ключ 1BB943DB от hkp сървър keyserver.ubuntu.com
gpg:ключ 1BB943DB:публичен ключ "Ключ за подписване на пакет MariaDB-
gpg:Общ брой обработен:1
gpg:импортиран:1
~ $ sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http:/ /ftp.osuosl.org/pub/mariadb/repo/5.5/ubuntu trusty main'
~ $ sudo apt-get update> /dev/null
Стъпка 3: Спрете услугата mysql.
sudo service mysql stop
Примерен изход:~ $ sudo service mysql stop
mysql stop/waiting
Стъпка 4: Преименувайте конфигурационния файл на MySQL /etc/mysql/my.cnf на /etc/mysql/my.cnf.bak. Тази стъпка е необходима, за да се гарантира, че всички несъвместими директиви/променливи са премахнати от конфигурацията, за да се предотвратят проблеми с инсталацията.
sudo mv /etc/mysql/my.cnf{,.bak}
Стъпка 5: Инсталирайте mariadb-сървъра пакет. Това едновременно ще премахне съществуващите двоични файлове на MySQL и след това ще инсталира новите двоични файлове на MariaDB. sudo apt-get install mariadb-server -y
Примерен изход:
+Стъпка 6: По време на инсталацията на екрана ще се появи диалогов прозорец, който подканва да промените паролата за root MySQL два пъти. Следвайте инструкциите, за да промените паролата или да пропуснете промяната, като предоставите празна парола.
Стъпка 7: Когато приключи успешно, услугата mysql трябва да стартира автоматично и скриптът mysql_upgrade се завършва автоматично по време на инсталационния процес.
A) Проверете дали услугата mysql работи.sudo service mysql status
Примерен изход:~ $ sudo service mysql status
mysql стартиране/изпълнение, процес 4745
Б) Проверете дали mysql_upgrade е бил успешен.sudo mysql_upgrade
Примерен изход:~ $ sudo mysql_upgrade
Тази инсталация на MySQL вече е надстроена до 5.5.61-MariaDB, използвайте --force, ако все още трябва да стартирате mysql_upgrade
Стъпка 8: Надстройката е завършена, проверете дали вашите бази данни съществуват и работят.
MySQL 5.7 до MariaDB 10.2 на Ubuntu 16.04
Стъпка 1: Потвърдете, че има резервни копия, преди да продължите в насроченото време.
Стъпка 2: Проверете дали локалният root акаунт има правилна парола. Преди да надстроите до MariaDB 10.2, проверете ‘root’ @ ‘localhost’ потребител, за да се увери, че парола е зададена по друг начин, auth_socket плъгинът използва празна парола. Това е обичайна практика в по-старите настройки и причинява проблеми с процеса на надстройка поради режима по подразбиране на MariaDB 10.2 в Strict SQL.
Следният скрипт ще отпечата данните за локалния root потребител.
mysql -e 'изберете потребител, хост, плъгин, authentication_string от потребител, където authentication_string ="" и плъгин ="auth_socket";' mysql
Примерен изход:~ $ mysql -e 'изберете потребител, хост, плъгин, authentication_string от потребител, където authentication_string ="" и плъгин ="auth_socket";' mysql
+------+-----------+------------+----------- ------------+
| Потребител | Домакин | Плъгин | низ_за автентикация |
+------+-----------+------------+---------- ------------+
| корен | локален хост | auth_socket | |
+------+-----------+------------+----------- ------------+
По-долу са дадени два примера за това как да актуализирате тези записи.
Автоматичен метод :Следният едноред чете паролата от /root/.my.cnf и използва тази парола за актуализиране на потребителския запис на MySQL, ако файлът съществува.
sudo test -e /root/.my.cnf &&sudo mysql -e "ПРОМЕНЯ ПОТРЕБИТЕЛ 'root'@'localhost' ИДЕНТИФИЦИРАН С mysql_native_password ОТ '$(awk -F"[=']" 'tolower($1) ~/password/{print $(NF-1)}' /root/.my.cnf)'; изберете User,Host,Plugin,uthentication_string от потребител, където потребител ='root' и хост ='localhost';" mysql || echo „ГРЕШКА:/root/.my.cnf не съществува, вие ли сте root?“
Примерен изход:~ $ sudo test -e /root/.my.cnf &&sudo mysql -e "ПРОМЕНЯ ПОТРЕБИТЕЛ 'root'@'localhost' ИДЕНТИФИЦИРАН С mysql_native_password ОТ '$(awk -F"[=']" 'tolower($1)~/password/{print $(NF-1)}' /root/.my.cnf)'; изберете User,Host,Plugin,uthentication_string от потребител, където потребител ='root' и host ='localhost';" mysql || echo „ГРЕШКА:/root/.my.cnf не съществува, ти ли си root?“
+------+-----------+------ -----------------+-------------------------------- -----------+
| Потребител | Домакин | Плъгин | низ_за автентикация |
+------+-----------+------------------------+ -------------------------------------------+
| корен | локален хост | mysql_native_password | *40C5E49F0CC7BDC637FEEDFBF14FF100C37619D7 |
+-----+-----------+----------------------- +------------------------------------------+
Ръчен метод: Следният синтаксис е необходим за добавяне на правилна парола към root потребителския акаунт. Не забравяйте да актуализирате файла /root/.my.cnf с правилната парола или вашата актуализация може да срещне грешки. Не забравяйте да замените правилната парола за SuperSecretPass.
ПРОМЕНЯТЕ ПОТРЕБИТЕЛЯ ‘root’@’localhost’, ИДЕНТИФИЦИРАН С mysql_native_password ОТ ‘SuperSecretPass’;
Стъпка 3: Инсталирайте хранилището на MariaDB 10.2. Това е строфа с няколко команди, която ще инсталира необходимите необходими инструменти, GPG ключ, хранилище и ще актуализира кеша на пакетите.
sudo apt-get install software-properties-common -y> /dev/null
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,arm64,i386,ppc64el] http://ftp.osuosl.org/pub/mariadb/repo/10.2/ubuntu xenial main'
sudo apt -получи актуализация> /dev/null
Примерен изход:~ $ sudo apt-get install software-properties-common -y
Отрязано за краткост.
~ $ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu .com:80 0xF1656F24C74CD1D8
Изпълнение:/tmp/tmp.J8PdET9w5B/gpg.1.sh --recv-keys
--keyserver
hkp://keyserver.ubuntu.com:80
0xF1656F24C74CD1D8
gpg:искане на ключ C74CD1D8 от hkp сървър keyserver.ubuntu.com
gpg:ключ C74CD1D8:публичен ключ „MariaDB Signing Key
gpg:импортирани:1 (RSA:1)
~ $ sudo add-apt-repository 'deb [arch=amd64,arm64,i386,ppc64el] http://ftp.osuosl.org/pub/mariadb/repo/10.2/ubuntu xenial main'
~ $ sudo apt-get update> /dev/null
Стъпка 4: Спрете услугата mysql.
sudo service mysql stop
Примерен изход:~ $ sudo service mysql stop
mysql stop/waiting
Стъпка 5: Преименувайте конфигурационния файл на MySQL /etc/mysql/my.cnf на /etc/mysql/my.cnf.bak. Тази стъпка е необходима, за да се гарантира, че всички несъвместими директиви/променливи са премахнати от конфигурацията, за да се предотвратят проблеми с инсталацията.sudo mv /etc/mysql/my.cnf{,.bak}
Стъпка 6: Инсталирайте пакета mariadb-server. Това едновременно ще премахне съществуващите двоични файлове на MySQL и след това ще инсталира новите двоични файлове MariaDB.
sudo apt-get install mariadb-server -y
Примерен изход:~ $ sudo apt install mariadb-server -y
Стъпка 7: По време на инсталацията на екрана ще се появи диалогов прозорец, който подканва, че паролата за root не може да бъде променена, защото такава вече е на мястото си. Натиснете enter, за да продължите.
Стъпка 8: Когато приключи успешно, услугата mysql трябва да стартира автоматично.sudo service mysql status
Примерен изход:~ $ sudo service mysql status
mysql стартиране/изпълнение, процес 4745
Стъпка 9: Накрая стартирайте mysql_upgrade, за да завършите надстройката.sudo mysql_upgrade
Резултатът илюстрира нормални грешки при надграждане.
Примерен изход:
+Стъпка 10: Надстройката е завършена, проверете дали вашите бази данни съществуват и работят.