Миграция на MySQL 5 база данни към MySQL 8

ВниманиеВАЖНО: Можете да ползвате таба Конвертиране към MySQL 8 в страницата "MySQL бази данни" в Контролния панел, за да конвертирате MySQL 5 бази данни към MySQL 8 автоматично.

MySQL 8 е най-новата стабилна версия на популярната SQL система за управление на бази данни. В нея има подобрения за сигурността и производителността спрямо MySQL 5. В момента на нашите сървъри се поддържат и MySQL 5.7, и MySQL 8.0.

Ако приложението, което ползвате на сайта си, поддържа MySQL 8, можете да мигрирате базата му данни от MySQL 5 към MySQL 8, за да се възползвате от подобренията в новата версия. Най-новите версии на WordPress, Joomla, Drupal, Magento, PrestaShop и Nextcloud работят без проблеми с MySQL 8.

За да работят на същия сървър, процесите на MySQL 5 и MySQL 8 ползват различни портове и сокети за входящи заявки. Това значи, че трябва да направите промяна в конфигурацията на приложението си, за да заработи с MySQL 8 базата данни след миграцията.

Преди да започнете

Не е необходимо да правите архив на MySQL 5 базата данни, преди да мигрирате съдържанието ѝ към MySQL 8. Съществуващата MySQL 5 база данни няма да бъде променена по никакъв начин, така че няма нужда да се притеснявате, че можете да счупите нещо.

Разбира се можете за всеки случай бързо и лесно да създадете архив на MySQL базите данни на страницата Архив в Контролния панел.

Ако приложението Ви има вграден режим за поддръжка, Ви препоръчваме да го включите сега. Тази стъпка не е задължителна, но може да предотврати проблеми със синхронизацията на данните по време на миграцията.

В тази статия ще използваме за пример инсталация на WordPress, направена от раздел "WordPress мениджър" в Контролния панел.

Създаване на дъмп на MySQL 5 базата данни

Първо трябва да създадете дъмп на текущата MySQL 5 база данни. Това можете да направите на страницата "MySQL бази данни" в Контролния панел:

Списък с MySQL 5 бази данни

Там трябва да натиснете бутона "Експортирай" до базата данни в списъка. Дъмпът ще бъде създаден в директорията ~/private/MySQL_Dumps/ на акаунта Ви.

Създаване на новата MySQL 8 база данни

След това можете да започнете да конфигурирате новата база данни, като смените версията на MySQL на "MySQL 8" в падащото меню.

Така ще можете да създадете нова MySQL 8 база данни. Препоръчваме Ви да ползвате същото име като това на MySQL 5 базата.

Освен това се уверете, че колацията е настроена да бъде предварително избраната utf8mb4_0900_ai_ci:

Създаване на MySQL 8 база данни

Това е най-съвременната колация, която може да се ползва с MySQL 8. С нея няма да имате проблеми да записвате пълния набор Unicode символи в базата данни.

Импортиране на данни от MySQL дъмп файла

Изберете базата данни в падащото меню "База" в раздела "Импортиране" и щракнете върху линка "изберете вече качен файл". Ще се появи допълнителен прозорец, в който можете да стигнете до директорията ~/private/MySQL_Dumps/ в акаунта. Там трябва да изберете дъмп файла, създаден в началото:

Импортиране на дъмпа от MySQL 5

След като направите това, трябва да изберете utf8mb4 в менюто "Encoding":

Потвърждение на импорт от MySQL 5

Това е кодирането с най-добрата и надеждна поддръжка на Unicode, което можете да ползвате с MySQL 8.

Като натиснете бутона "Импортирай", данните от MySQL 5 базата данни ще бъдат импортирани в новата MySQL 8 база. След приключването на импорта ще имате MySQL 8 база данни със същите данни в нея, които са налични в MySQL 5 базата и ще можете да продължите с конфигурацията на приложението да ползва новата база данни.

Създаване на ново MySQL 8 потребителско име за новата база

Повечето приложения ползват собствено потребителско име за достъп до MySQL. Най-лесната опция за миграция към MySQL 8 е да създадете същото потребителско име, което вече съществува за MySQL 5.

За целта препоръчваме да отворите конфигурационния файл на приложението в страницата "Файлове" на Контролния панел в нов таб на настройките за достъп до базата данни.

Следната таблица показва къде можете да намерите конфигурационните файлове на най-популярните приложения:

ПриложениеКонфигурационен файл
WordPresswp-config.php
Joomlaconfiguration.php
Drupalsites/default/settings.php
Magentoapp/etc/env.php
PrestaShopapp/config/parameters.php
Nextcloudconfig/config.php


За нашия пример редактираме файла wp-config.php в инсталационната директория на WordPress:

Редактиране на конфигурацията на приложението

С конфигурацията за достъп до MySQL в този файл ще можете да създадете същото потребителско име за MySQL 8 на таба "MySQL потребители" на страницата "MySQL бази данни" в Контролния панел.

Уверете се, че е избрана правилната база данни в менюто "База", когато създавате потребителското име. Така всички необходими права ще бъдат автоматично добавени за новия потребител:

Създаване на MySQL потребителско име

По този начин промените в конфигурацията, които ще са нужни, за да заработи приложението с MySQL 8, ще са минимални.

Промяна на конфигурацията

Тук вече можете да промените конфигурацията на приложението си с новите детайли за връзка с MySQL сървъра, за да се използва MySQL 8.

Тъй като направихме останалата част от детайлите еднакви между MySQL 5 и MySQL 8, само новото име на MySQL хостa трябва да бъде указано. В настоящия WordPress пример единствено стойността на константата DB_HOST трябва да бъде променена от localhost на localhost:/tmp/mysql8.sock.

Стойността на настройката е различна в зависимост от приложението, което ползвате. Необходимите промени за най-разпространените приложения са отразени в следната таблица:

ПриложениеКонфигурационен файлMySQL 5 хостMySQL 8 хостДруги необходими промени в конфигурацията
WordPresswp-config.php'localhost''localhost:/tmp/mysql8.sock' 
Joomlaconfiguration.php'localhost''localhost:/tmp/mysql8.sock' 
Drupalsites/default/settings.php'localhost' или '127.0.0.1''127.0.0.1'Портът трябва да бъде сменен от '3306' на '3308'
Magentoapp/etc/env.php'localhost''/tmp/mysql8.sock' 
PrestaShopapp/config/parameters.php'localhost''localhost:/tmp/mysql8.sock' 
Nextcloudconfig/config.php'localhost''localhost:/tmp/mysql8.sock' 

След запазването на файла миграцията към MySQL 8 ще бъде завършена.

Готово

Приложението Ви вече работи с новата MySQL 8 база данни. Ако сте пуснали режим за поддръжка в приложението, вече можете да го спрете и да прегледате сайта за проблеми.

Съветваме Ви да изтриете ненужните MySQL 5 база данни и потребител/и, след като се уверите, че сайтът Ви функционира правилно с новата MySQL 8 база данни.