Migrácia databázy z MySQL 5.0 na MySQL 5.7

Na túto migráciu stačí použiť rozhranie Webadmin. Postup je podobný ako pri migrácií databáz MySQL 5.0 na MySQL 5.7:

1. Prihláste sa do Webadmina.

2. V sekcii Služby si zvoľte doménu, pri ktorej potrebujete vytvoriť databázu a kliknite na možnosť Databázy.

3. Pri MySQL 5.0 databáze, ktorú chcete premigrovať, stlačte na tlačidlo Správa a následne Vytvoriť kópiu

4. Zobrazí sa upozornenie, že sa pre vytvorenie kópie musí najprv vytvoriť aktuálna záloha - toto je v poriadku, stačí kliknúť na Pokračovať 

5. Na novej obrazovke ako typ databázy zvoľte MySQL 5.7, zadajte ľubovoľné meno a heslo (tieto údaje budete používať pri následných prístupoch na novú databázu) a kliknite na tlačidlo Vytvoriť

Týmto spôsobom ste vytvorili kópiu MySQL 5.0 databázy na MySQL 5.7 serveroch a tým pádom, keď budeme rušiť podporu pre MySQL 5.0, Vaša databáza zostane zachovaná a bude funkčná. Preveriť, či je nová databáza v poriadku, viete tak že sa prihlásite na db57.websupport.sk s prihlasovacími údajmi tejto novej databázy - ak to nepojde, poprosím skúste 15 min a následne sa prihláste znovu. 

Následne bude ešte nevyhnutné upraviť webovú aplikáciu tak, aby namiesto pôvodnej databázy používala tú novú - na toto viete použiť návod Pripojenie databázy na webovú aplikáciu.

Čo sa týka známych problémov pri tomto type migrácie, môže vzniknúť situácia, kedy sa znaky obsahujúce diakritiku nezobrazujú korektne. Vtedy treba v kóde aplikácie ručne pridať kódovanie, takýmito spôsobmi:

Pôvodné pripojenie:

$connection = new PDO("mysql:host=mysql57.websupport.sk;port=3311;dbname=nazov_db", "nazov_db", "tu_vlozte_heslo");

Môžnosti pripojenia so zmeneným kódovaním:

$connection = new PDO("mysql:host=mysql57.websupport.sk;port=3311;dbname=nazov_db;charset=utf8", "nazov_db", "tu_vlozte_heslo", array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));

$connection = 'mysql:unix_socket=/tmp/mysql57.sock;dbname='nazov_db';charset=utf8';

Vo väčšine prípadov stačí na pripojenie použiť druhú možnosť (pridať iba "charset=utf8" v riadku kde sa databáza pripája do aplikácie). Keby žiadne z týchto úprav nefungovali, alebo ak aplikácia namiesto PDO používa mysql_connect alebo mysql_pconnect, treba za tento connect pridať riadok:

mysql_query("SET NAMES 'utf8'");

v takom prípade to celé môže vyzerať napríklad takto:

$db = mysql_pconnect('localhost:/tmp/mysql57.sock','nazov_db','heslo');
          mysql_query("SET NAMES 'utf8'");
          mysql_select_db('nazov_db');

Keď budete vedieť, že Vám databáza funguje korektne a aplikácia tiež funguje s upravenými všetkými nastaveniami, môžete pôvodnú MySQL 5.0 databázu zmazať - tak, že vo webadmin rozhraní, podľa návodu zo začiatku textu, vykonáte kroky 1 a 2 a následne v kroku tri kliknete na Správa a Vymazať. Následne to stačí iba Potvrdiť. Neodporúčam toto však robiť až dovtedy, kým všetko nefunguje korektne.

V prípade, že vzniknú nejaké chyby pri migrácii MySQL 5.0 databáz iné ako tie s kódovaním, alebo že nová databáza pri migrácii vôbec nefunguje, odporúčam postup opakovať na viackrát, takým spôsobom, že podľa postupu popísaného na začiatku návodu najprv vytvoríte kópiu pôvodnej databázy typu MySQL 5.1 a potom z tejto novovytvorenej kópie vytvoríte, tiež podľa postupu na začiatku, kópiu typu MySQL 5.7. Takýmto vytváraním "kópie kópie" znemožníte výskyt problémov spôsobených prípadnou nekompatibilitou niektorých častí databázových serverov MySQL 5.0 a MySQL 5.7 a zvýšite pravdepodobnosť, že MySQL 5.7 kópia databázy bude fungovať korektne.