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:
[shell]# portupgrade -frn mysql-client[/shell]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.
[shell gutter=”false” toolbar=”false”]…
+ 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)
…[/shell] - 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.
[shell gutter=”false” toolbar=”false”]# cd /usr/ports/databases/mysql50-client
# make deinstall
# cd /usr/ports/databases/mysql50-server
# make deinstall
# cd /usr/ports/databases/mysql50-scripts
# make deinstall[/shell] - 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.
[shell gutter=”false” toolbar=”false”]# cd /usr/ports/databases/mysql51-server
# make install clean[/shell]Szükség esetén telepítse a mysql51-scripts portot is.
[shell gutter=”false” toolbar=”false”]# cd /usr/ports/databases/mysql51-scripts
# make install clean[/shell] - 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:
[shell gutter=”false” toolbar=”false”]# chown mysql:mysql /usr/local/etc/my.cnf
# chmod 644 /usr/local/etc/my.cnf[/shell] - Indítsa el a MySQL 5.1 adatbázis kiszolgálót.
[shell gutter=”false” toolbar=”false”]# /usr/local/etc/rc.d/mysql-server start[/shell]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:
[shell gutter=”false” toolbar=”false”]# portupgrade -fO postfix
# portupgrade -fO p5-DBD-mysql
…[/shell]A portok frissítése után ellenőrizze le a portok adatbázisát a következő paranccsal, hogy minden rendben van-e.
[shell gutter=”false” toolbar=”false”]# pkgdb -F[/shell]
- 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.)
[shell gutter=”false” toolbar=”false”]# 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[/shell] - Ezután érdemes újraindítani a mysql-server démont, hogy ellenőrizni lehessen, minden rendben van az adatbázisok visszaolvasása előtt.
[shell gutter=”false” toolbar=”false”]# /usr/local/etc/rc.d/mysql-server restart[/shell]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.