MySQL
Adatbázissal kapcsolatos kérdések
- Hogyan készítsünk mentést az adatbázisról?
- phpMyAdmin telepítése cPaneles tárhelyre
- Nagyméretű adatbázis importálása
- Adatbázis elérése SSH tunnelen keresztül
- MySQL szerver frissítés utáni lehetséges problémák és megoldások
Hogyan készítsünk mentést az adatbázisról?
Majdnem minden modern weboldal MySQL adatbázist használ. A népszerűbb tartalom kezelő rendszerek, mint például a WordPress, Magento, Joomla minden adatot MySQL adatbázisban tárol. Abban az esetben ha valamilyen ok miatt szeretnénk mentést készíteni az adatbázisról, például MySQL szerver frissítés, akkor lehetőség van az adatbázisban tárolt adatok kidumpolására, illetve egy esetleges hiba esetén a dump visszatöltésére is.
MENTÉS KÉSZÍTÉSE
A szerverre SSH-n keresztül történő csatlakozást követően az alábbi parancs kiadásával készíthet mentést:
mysqldump -u user_name -p database_name --single-transaction | gzip -2 > db.sql.gz
A fenti parancs kiadásával egy tömörített dumpot hoz létre, egyetlen tranzakciós jelzővel.
Természetesen lehetőség van tömörítés nélküli dump készítésére is, azonban ez sokkal több időt fog igénybe venni, és a kidumpolt tartalom is több helyet fog lefoglalni.
mysqldump -u user_name -p database_name > db.sql
A TÖMÖRÍTETT ARCHÍVUM KITÖMÖRÍTÉSE
A visszaállítást a következő parancs kiadásával végezhetjük el
gunzip < db.sql.gz | mysql -u user_name -p database_name
A tömörítetlen adatbázis visszaállításához a következő parancsot használhatjuk:
mysql -u user_name -p database_name < db.sql
phpMyAdmin telepítése cPaneles tárhelyre
A cPanel felületéről a phpMyAdmin-t el lehet érni, azonban a sok menü és a bejelentkezések miatt ez a használhatóságban okozhat problémát. A cPanel felületén létre kell hozni egy aldomain nevet az egyik domain név alatt.
- Az aldomain nevet a cPanel felületén az Aldomainek/Subdomains menüpontban tudja elkészíteni. Például: phpmyadmin.öndomain_neve.tld.
- A cPanel alapértelmezett főoldali elrendezésében az oldal legalsó részén található a Softaculous telepítő. Itt kattintson a Kategóriák/Categories résznél bármelyik ikonra.
- A megjelenő oldal jobb felső részén a kereső mezőbe gépelje be a phpmyadmin szót, majd a megjelenő keresési eredmények között kattintson rá a phpMyAdmin feliratra.
- Az oldal felső részén kattintson az Telepítés/Install menüpontra.
- A második lehulló listából válassza ki a létrehozott aldomain nevet.
- Kattintson az Advanced Options felirat előtt található + jelre.
- Jelölje be az Auto Upgrade lehetőséget.
- Végül kattintson a Telepítés gombra.
A telepítést követően már el lehet érni a phpMyAdmint a böngészőből. Így az adatbázisok eléréséhez nem kell bejelentkeznie a cPanel felületére.
Nagyméretű adatbázis importálása
A phpMyAdmin felületén maximum 50 MB-os mérettel rendelkező adatbázist lehet importálni. Abban az esetben ha Ön DotRoll Plus, DotRoll Ultra, vagy DotRoll Pro tárhely csomaggal rendelkezik akkor lehetősége van nagyobb méretű adatbázis importálására is.
-
SQL DUMP FELTÖLTÉSE
Egy FTP kliens segítségével másolja fel a tárhelyére az importálni kívánt SQL dump-ot. A fájl lehetőség szerint közvetlenül a tárhelyének kezdő könyvtárába másolja fel (/home/tárhelyazonosító).
-
MYSQL ADATBÁZIS, FELHASZNÁLÓ, JELSZÓ ÉS A JOGOSULTSÁGOK BEÁLLÍTÁSA
A cPanel felületén a MySQL adatbázisok menüpontban hozzon létre egy MySQL felhasználót, és ahhoz állítson be egy jelszót. Valamint a létrehozott felhasználót rendelje hozzá ahhoz az adatbázishoz amelybe importálni szeretne.
-
SSH KULCSPÁR LÉTREHOZÁSA, VAGY BEÁLLÍTÁSA
-
SSH CSATLAKOZÁS
PuTTY login
A Host Name (or IP address) mezőben adja meg az Ön fődomain nevét.
A port maradhat az alapértelmezett 22-es port.
Következő lépésként kattintson az SSH menüpont előtti „+” jelre.PuTTY bejelentkezés
A Private key file for authentication: mezőben adja meg a cPanel felületén elkészített kulcsát, vagy a korábban elkészített privát kulcsát.
Ezt követően lehetősége van a konfiguráció elmentésre is, de azonnal csatlakozhat is a tárhelyéhez.
-
ADATBÁZIS IMPORTÁLÁSA SCREEN SEGÍTSÉGÉVEL
Amennyiben az adatbázis importálást nem szeretné végéig várni úgy a bejelentkezést követően adja ki a következő parancsot:
screen -S mysqlimport
Az adatbázis importálásához az alábbi parancsot kell kiadnia:
mysql -uusernev -padatbazisfelhasznalojelszo -h localhost adatbazis_neve < importalandofajlneve.sql
Az importálást szintén az Enter billentyű segítségével hagyhatja jóvá.
A kapcsolók jelentése:
- -u MySQL adatbázis felhasználói név. A kapcsolóval egybe kell írni a felhasználói nevet, nem kell szóközt tenni közé.
- -p MySQL adatbázis felhasználó jelszava.
- -h MySQL kiszolgáló címe
A folyamat a szerver terheltségétől, valamint az adatbázis méretétől függően hosszabb időt is igénybe vehet. Amennyiben nem kívánja végigvárni a folyamatot nyomja le a CTRL billentyűt illetve az a betűt, ezt követően a d billentyűt.
"Ctrl-a" "d"
Ezzel a paranccsal a korábban indított screen leválasztásra kerül, azonban az ott kiadott műveletek a háttérben tovább folytatódnak. Ezt követően a jelenlegi munkamenetet bezárhatja a logout parancs vagy a „CTRL+D” billentyűk lenyomásával.
-
SCREEN MUNKAMENET VISSZASZERZÉSE
Az importálási folyamatot ellenőrizheti ha újra bejelentkezik a kiszolgálóra egy SSH kliens segítségével, majd kiadja a következő parancsot:
screen -r
Amennyiben több screen-t is futtat a háttéreben a következő parancs segítségével tudja megjeleníteni az éppen futó screen-ek listáját.
screen -ls
A rendszer ki fogja listázni a korábban leválasztott screen-ek listáját. A leválasztott munkamenethez a következő paranccsal tud ismét csatlakozni:
screen -r 864870.mysqlimport
-
SCREEN MUNKAMENET BEZÁRÁSA, A FELTÖLTÖTT SQL FÁJL TÖRLÉSE
Amennyiben csak egy screen-t futtatunk úgy az exit paranccsal kiléphetünk belőle, illetve az alábbi paranccsal:
"Ctrl-a" "d" "d"
Sajnos a parancssoros adatbázis import esetén nem jelenik meg külön folyamat jelző az importálás folyamatáról. Amint az importálás befejeződött az alapértelmezett parancssort fogja visszakapni. Amennyiben az importálni kívánt fájlban valahol hiba van akkor a szerver megállítja az importálási folyamatot, és a hibát kiírja. Ilyen esetben az importálás csak a hibáig történik meg.
Javasoljuk, hogy a tárhelyre felmásolt SQL dump fájlt az importálás befejezését követően távolítsa el a tárhelyről. Ezt az alábbi parancs segítségével tudja megtenni:
rm importalandofajlneve.sql
Adatbázis elérése SSH tunnelen keresztül
Fejlesztési célokra SSH-n keresztül biztosítunk hozzáférést a MySQL szerverünkhöz a Plus tárhely csomagtól.
A kapcsolat létrehozásához létre kell hozni egy SSH kulcspárt a cPanel felületén. Ezt követően a PuTTY segítségével tudunk csatlakozni SSH protokollon keresztül a tárhelyhez, azonban a csatlakozás előtt be kell állítani a tunnelt a PuTTY alkalmazásban.
A beállítás menete:
- Az ablak bal oldali részében válasszuk ki a Connection/SSH lehetőséget azon belül pedig a Tunnels részt.
- Itt az Add new forwarded port résznél a Source port mezőbe adja meg a 3306-os port számot. A Destination részhez pedig a localhost:3306 értéket, majd kattintson az Add gombra.
- Az adatok megadása után kattintsunk az Open gombra. A megjelenő ablakban adja meg a tárhelye azonosítóját valamint az SSH kulcshoz beállított jelszavát.
Ezen beállítások segítségével Ön a localhost:3306-os portra kapcsolódva láthatja az adatbázisait, egészen addig ameddig a PuTTY segítségével létrehozott kapcsolatot nem bontja.
MySQL szerver frissítés utáni lehetséges problémák és megoldások
Ha a MySQL szerveren végrehajtani kívánt művelet során az alábbi üzenethez hasonló hibaüzenettel találkozik:
Field 'field_name' doesn't have a default value
Akkor javasoljuk, hogy a MySQL kapcsolat felépítését követően futtassa le az alábbi query-t:
5.7-es PHP verzióig az alábbi kódot érdemes használni:
mysql_query("SET SESSION sql_mode = ''");
7.0-ás, vagy a feletti PHP verziótól pedig az alábbi kódsort érdemes használni:
mysqli_query("SET SESSION sql_mode = ''");