A MySQL 5.0 aktív támogatása 2009. december 31-én befejeződött és bekerült a kiterjesztett támogatási fázisba, majd 2012. január 9-én átkerült a fenntartási támogatás alá. Ezt azt jelenti, hogy nem lesznek új kiadások, nem készülnek hozzá új javítások és új frissítések, csak a már létező frissítések, javítások és riasztások lesznek elérhetők. Mostanra elkerülhetetlenné vált az áttérés a MySQL aktuális GA (Generally Available) verziójára, ami jelen pillanatban a MySQL 5.5.29 verzió.
A MySQL 5.5 referencia kézikönyv alapján az általános szabály az, hogy az egyik kiadási sorozatról az áttérést egy másikra lépésenként ajánlott végrehajtani, a közbenső sorozatok kihagyása nélkül.
Ahhoz, hogy áttérjen a MySQL 5.5 verziót megelőző kiadási sorozatról, térjen át sorban az egymás követő kiadási sorozatokra mindaddig, amíg el nem éri a MySQL 5.5 verziót. Például, ha jelenleg a MySQL 5.0 verziót futtatja és át szeretne térni egy újabb újabb sorozatra, akkor előbb térjen át a MySQL 5.1 verzióra mielőtt áttérne az 5.5 verzióra, és így tovább.
Figyelmeztetés: Mindenféle áttérés megkezdése előtt készítsen adatmentést adatbázisairól, beleértve a mysql adatbázist is, amely tartalmazza az engedélyek tábláját. MySQL adatbázis mentési módszerek
Módszerek
Az áttérés végrehajtásának alapvetően két módja van: a bináris (in-place) és a mentés/visszaállítás (dump/restore).
- A bináris módszer esetén az áttérés közben az adatbázisok fájljai érintetetlenek maradnak, ezeken az új verzióra való áttérés után le kell futtatni a mysql_upgrade programot.
- A másik módszer a mentés/visszaállítás (dump/restore) eljárás. Ennek során az adatbázisokat exportálni kell az áttérés megkezdése előtt, majd az új verzióra való áttérés után vissza kell állítani az adatbázisokat. Ennél a módszernél is le kell futtatni a mysql_upgrade programot, hogy a MySQL specifikus adatbázisok (pl. felhasználó-nyilvántartás) frissítve legyenek.
Sajnos a személyes tapasztalok azt mutatják, hogy a MySQL 5.0 verzióról az 5.1-es verzióra való bináris módszer nem igazán megy zökkenőmentesen, ezért itt a második módszer kerül bemutatásra.
A bináris módszert a MySQL 5.1 verzióról az 5.5 verzióra való áttérésnél található meg.
Eljárás (dump/restore)
Itt minden fontos lépést megtalálhat az áttérés megfelelő végrehajtásához.
- Az első és legfontosabb lépés a biztonsági mentés készítése az adatbázisokról, mégpedig oly módon, hogy az egyes adatbázisok külön sql fájlba kerüljenek.
Fontos, hogy lementse a mysql adatbázist, mert ebben vannak a felhasználók és az engedélyek!
Az adatmentés előtt állítsa le az összes alkalmazást, amely használja MySQL adatbázist. - Ellenőrizni kell, hogy mely portok függnek az aktuálisan telepített mysql-client verziótól, ez a következő paranccsal tehető meg:
# portupgrade -frn mysql-client
Ez a parancs megpróbálja újrafordítani az összes olyan portot, amely függ a mysql-client porttól, mivel azonban az -n kapcsoló is meg lett adva, ezért nem lesz végrehajtva semmi (csak egy teszt fut le). A parancs eredményeként egy rövidebb-hosszabb listát fog kapni azokról a portokról, amelyekhez szükséges, hogy a mysql-client port helyesen működjön.
... + databases/mysql50-client (mysql-client-5.0.95 ->; mysql-client-5.0.95) + databases/mysql50-server (mysql-server-5.0.95 ->; mysql-server-5.0.95) + mail/dovecot (dovecot-1.2.17 ->; dovecot-1.2.17) + security/cyrus-sasl2 (cyrus-sasl-2.1.26_2 ->; cyrus-sasl-2.1.26_2) + mail/postfix28 (postfix-2.8.12_2,1 ->; postfix-2.8.12_2,1) + databases/p5-DBD-mysql (p5-DBD-mysql-4.021 ->; p5-DBD-mysql-4.021) + security/amavisd-new (amavisd-new-2.8.0_2,1 ->; amavisd-new-2.8.0_2,1) + mail/dovecot-sieve (dovecot-sieve-1.2+0.1.19 ->; dovecot-sieve-1.2+0.1.19) + databases/mysql50-scripts (mysql-scripts-5.0.95 ->; mysql-scripts-5.0.95) + mail/dovecot-managesieve (dovecot-managesieve-0.11.13 ->; dovecot-managesieve-0.11.13) + security/maia (maia-1.0.3.r1575_3 ->; maia-1.0.3.r1575_3) ...
- Mentse el a listát egy biztonságos helyre, mivel később szükség lesz még rá (a listáról eltávolíthatja a mysql-client, mysql-server és mysql-scripts portokat, mivel ezek egyébként is frissítve lesznek)
- Távolítsa el a mysql50-client, mysql50-server és mysql50-scripts portokat.
# cd /usr/ports/databases/mysql50-client # make deinstall # cd /usr/ports/databases/mysql50-server # make deinstall # cd /usr/ports/databases/mysql50-scripts # make deinstall
- Mivel ez most nem a bináris (in-place) módszer, ezért mindent el kell távolítani a MySQL adatútvonaláról. Ez FreeBSD estén alapértelmezésben a /var/db/mysql útvonalon található. Mielőtt mindent kitörölne vagy áthelyezne innen, ellenőrizze, hogy rendelkezik-e érvényes és működő biztonsági mentéssel adatbázisairól!
Fontos, hogy a MySQL konfigurációs fájljáról (/usr/local/etcl/my.cnf) is készítsen biztonsági mentést, mert a beállításokat át kell vinni majd az új verzió konfigurációs fájljába. - Most telepítse a mysql51-server portot, ez automatikusan telepíteni fogja a mysql51-client portot is.
# cd /usr/ports/databases/mysql51-server # make install clean
Szükség esetén telepítse a mysql51-scripts portot is.
# cd /usr/ports/databases/mysql51-scripts # make install clean
- Hozza létre a /usr/local/etc/my.cnf konfigurációs fájlt a megfelelő my-{small,medium,large,huge}.cnf fájlból a /usr/local/share/mysql útvonalról (a beállítások megváltoztak). Vigye át a szükséges beállításokat a régi konfigurációs fájlból az új konfigurációs fájlba.
Állítsa be a /usr/local/etc/my.cnf fájl megfelelően:# chown mysql:mysql /usr/local/etc/my.cnf # chmod 644 /usr/local/etc/my.cnf
- Indítsa el a MySQL 5.1 adatbázis kiszolgálót.
# /usr/local/etc/rc.d/mysql-server start
Automatikusan létrejönnek az alapértelmezett adatbázisok (mysql, performance_schema, test) a /var/db/mysql útvonalon, valamint InnoDB esetén a naplófájlok.
- Most, hogy már telepítve van és fut a MySQL 5.1, de az összes érintett szoftver még az 5.0-ás klienst használja, ezért most még ne indítsa újra a szoftvereket. Most vegye elő a portok elmentett listáját, és fordítsa újra minden egyes elemét.
Kezdje pl. a postfix és hozzá szükséges portokkal:# portupgrade -fO postfix # portupgrade -fO p5-DBD-mysql ...
A portok frissítése után ellenőrizze le a portok adatbázisát a következő paranccsal, hogy minden rendben van-e.
# pkgdb -F
- Most már csak az adatbázisokat kell visszaállítani. Elsőként a mysql adatbázist kell visszaállítani és lefuttatni rajta a frissítést. (A jelszó nem kell megadni, mert még nincs meghatározva.)
# mysql -uroot mysql < mysql.sql # mysql_upgrade -uroot Looking for 'mysql' as: mysql Looking for 'mysqlcheck' as: mysqlcheck Running 'mysqlcheck' with connection arguments: '--port=3306' '--socket=/tmp/mysql.sock' Running 'mysqlcheck' with connection arguments: '--port=3306' '--socket=/tmp/mysql.sock' mysql.columns_priv OK mysql.db OK mysql.event OK mysql.func OK mysql.general_log OK mysql.help_category OK mysql.help_keyword OK mysql.help_relation OK mysql.help_topic OK mysql.host OK mysql.ndb_binlog_index OK mysql.plugin OK mysql.proc OK mysql.procs_priv OK mysql.proxies_priv OK mysql.servers OK mysql.slow_log OK mysql.tables_priv OK mysql.time_zone OK mysql.time_zone_leap_second OK mysql.time_zone_name OK mysql.time_zone_transition OK mysql.time_zone_transition_type OK mysql.user OK mysql.user_info OK Running 'mysql_fix_privilege_tables'... OK
- Ezután érdemes újraindítani a mysql-server démont, hogy ellenőrizni lehessen, minden rendben van az adatbázisok visszaolvasása előtt.
# /usr/local/etc/rc.d/mysql-server restart
Eztán már csak a korábbi felhasználókkal és a hozzátartozó jelszavakkal lehet belépni.
- Ezután jöhet a többi adatbázisok visszaállítása a mentésből. Hajtsa végre az adatbázisok visszaolvasását egyesével.