MySQL adatbázisok migrálása

Tételezzük fel, hogy két webszerver adatait (webkönyvtárak és adatbázisok) kell átvinni egy harmadik szerverre. A webkönyvtárak adatainak migrálása meglehetősen triviális feladat, a MySQL adatbázisok viszont okozhatnak némi fejtörést, legalábbis ami az adatbázis felhasználóit és a hozzájuk tartozó jogosultságokat illeti. A weboldalak adatbázisait könnyedén elmethetjük akár a phpMyAdmin, akár az AutoMySQLBackup segítségével, majd az új webszerveren visszatölthetjük azokat. A MySQL adatbázis felhasználóival és jogosultságaikkal már picit nehezebb dolgunk van, de ez sem nehéz feladat, csak tudnunk kell, hol találjuk meg ezeket.

A MySQL adatbáziskezelő felhasználóit és azok jogosultságait a mysql nevű adatbázisban találjuk meg. A db nevű tábla tartalmazza a felhasználók jogosultságait, a user nevű tábla pedig a felhasználókat. A többi tábla tartalmától alapesetben nyugodtan eltekinthetünk (ezek nagyrészt üresek, a help_ nevűek pedig az új helyen már úgyis rendelkezésre állnak).

Mentsük el tehát a mysql nevű adatbázist, majd az így létrejött SQL utasításokat tartalmazó fájlból:

  1. Töröljük ki azokat a szekciókat, amelyek nem a db és a user tábla visszaállításáért felelősek,
  2. A db és a user tábla adatainak visszatöltéséért felelős sorok közül (INSERT INTO szekció) töröljük ki azokat, amelyek a root felhasználó adatait tartalmazzák (remélhetőleg nem a root felhasználó az egyetlen az adatbázisban, aki minden weboldal adatbázisáért felelős).

Az így "előállított", SQL utasításokat tartalmazó fájl már betölthető az új webszerver mysql nevű adatbázisába.

Végül, hogy az új felhasználók és jogosultságaik "működőképesek" is legyenek, ne felejtsük el kiadni a FLUSH PRIVILEGES utasítást, vagy a phpMyAdmin Jogok menüpontja alatt újra betöltetni a jogosultságokat.