ВАЖНО: Можете да ползвате таба Конвертиране към 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 бази данни" в Контролния панел:
Там трябва да натиснете бутона "Експортирай" до базата данни в списъка. Дъмпът ще бъде създаден в директорията ~/private/MySQL_Dumps/ на акаунта Ви.
Създаване на новата MySQL 8 база данни
След това можете да започнете да конфигурирате новата база данни, като смените версията на MySQL на "MySQL 8" в падащото меню.
Така ще можете да създадете нова MySQL 8 база данни. Препоръчваме Ви да ползвате същото име като това на MySQL 5 базата.
Освен това се уверете, че колацията е настроена да бъде предварително избраната utf8mb4_0900_ai_ci:
Това е най-съвременната колация, която може да се ползва с MySQL 8. С нея няма да имате проблеми да записвате пълния набор Unicode символи в базата данни.
Импортиране на данни от MySQL дъмп файла
Изберете базата данни в падащото меню "База" в раздела "Импортиране" и щракнете върху линка "изберете вече качен файл". Ще се появи допълнителен прозорец, в който можете да стигнете до директорията ~/private/MySQL_Dumps/ в акаунта. Там трябва да изберете дъмп файла, създаден в началото:
След като направите това, трябва да изберете utf8mb4 в менюто "Encoding":
Това е кодирането с най-добрата и надеждна поддръжка на Unicode, което можете да ползвате с MySQL 8.
Като натиснете бутона "Импортирай", данните от MySQL 5 базата данни ще бъдат импортирани в новата MySQL 8 база. След приключването на импорта ще имате MySQL 8 база данни със същите данни в нея, които са налични в MySQL 5 базата и ще можете да продължите с конфигурацията на приложението да ползва новата база данни.
Създаване на ново MySQL 8 потребителско име за новата база
Повечето приложения ползват собствено потребителско име за достъп до MySQL. Най-лесната опция за миграция към MySQL 8 е да създадете същото потребителско име, което вече съществува за MySQL 5.
За целта препоръчваме да отворите конфигурационния файл на приложението в страницата "Файлове" на Контролния панел в нов таб на настройките за достъп до базата данни.
Следната таблица показва къде можете да намерите конфигурационните файлове на най-популярните приложения:
ПриложениеКонфигурационен файл
WordPress
wp-config.php
Joomla
configuration.php
Drupal
sites/default/settings.php
Magento
app/etc/env.php
PrestaShop
app/config/parameters.php
Nextcloud
config/config.php
За нашия пример редактираме файла wp-config.php в инсталационната директория на WordPress:
С конфигурацията за достъп до MySQL в този файл ще можете да създадете същото потребителско име за MySQL 8 на таба "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 хостДруги необходими промени в конфигурацията
WordPress
wp-config.php
'localhost'
'localhost:/tmp/mysql8.sock'
Joomla
configuration.php
'localhost'
'localhost:/tmp/mysql8.sock'
Drupal
sites/default/settings.php
'localhost' или '127.0.0.1'
'127.0.0.1'
Портът трябва да бъде сменен от '3306' на '3308'
Magento
app/etc/env.php
'localhost'
'/tmp/mysql8.sock'
PrestaShop
app/config/parameters.php
'localhost'
'localhost:/tmp/mysql8.sock'
Nextcloud
config/config.php
'localhost'
'localhost:/tmp/mysql8.sock'
След запазването на файла миграцията към MySQL 8 ще бъде завършена.
Готово
Приложението Ви вече работи с новата MySQL 8 база данни. Ако сте пуснали режим за поддръжка в приложението, вече можете да го спрете и да прегледате сайта за проблеми.
Съветваме Ви да изтриете ненужните MySQL 5 база данни и потребител/и, след като се уверите, че сайтът Ви функционира правилно с новата MySQL 8 база данни.