Egy weboldal költöztetésekor, egy fejlesztői másolat élesítésekor vagy egy régi mentés visszatöltésekor az adatbázist SQL fájlként kell kimenteni (exportálni) és betölteni (importálni). A cPanel tárhelyen erre a phpMyAdmin szolgál, nagyobb adatbázisnál pedig, ha a csomagod tartalmaz SSH-hozzáférést, a parancssori mysql kliens. A tárhelyeinken MariaDB 10.11 fut, amely a MySQL-lel kompatibilis.
A phpMyAdmin felületét általánosabban a phpMyAdmin alapjait bemutató blogcikkünk ismerteti.
A phpMyAdmin megnyitása
Jelentkezz be a cPanelbe, és az Adatbázisok csoportban kattints a phpMyAdmin ikonra. A phpMyAdmin külön jelszó nélkül, a cPanel fiókoddal nyílik meg, és bal oldalt a fiók összes adatbázisát mutatja.
Adatbázis exportálása
- A bal oldali listában kattints az exportálandó adatbázis nevére, majd felül az Exportálás fülre.
- Az Exportálás módja maradhat Gyors - csak minimális opció megjelenítése, a Formátum pedig SQL.
- Kattints az Exportálás gombra. A böngésző letölti az adatbázis nevét viselő
.sqlfájlt.
Nagyobb adatbázisnál válaszd az Egyedi - minden lehetséges opció megjelenítése módot, és a Kimenet részben a Tömörítés listában a gzip-elve pontot: a szöveges SQL fájl tömörítve általában a töredékére zsugorodik, és a phpMyAdmin így is vissza tudja tölteni. Az egyedi módban egyes táblákat ki is hagyhatsz.
Ha az adatbázist egy másik nevű adatbázisba fogod betölteni (cPanelben minden adatbázis neve a felhasználónévvel kezdődik), az egyedi mód CREATE DATABASE / USE utasítások hozzáadása kapcsolója maradjon kikapcsolva. Ez az alapállapot.
Az aWh a tárhelyről automatikus mentést is készít; egy adatbázis korábbi állapotának visszaállítását a JetBackupos visszaállításról szóló cikk mutatja be.
SQL mentés importálása
Az importálás egy már létező adatbázisba tölti be a fájl tartalmát. Ha még nincs adatbázisod, előbb hozd létre egy felhasználóval együtt (adatbázis és felhasználó létrehozása cPanelben).
- A bal oldali listában kattints a céladatbázisra, majd az Importálás fülre.
- A Fájl kiválasztása gombbal válaszd ki a mentést. Tömörített fájlt (gzip, bzip2, zip) is feltölthetsz, ha a neve
.sql.gz,.sql.bz2vagy.sql.zipvégű. A feltöltés felső határa a (Max: 50MB) felirat szerint 50 MB; ennél nagyobb mentést tömöríts, vagy töltsd be SSH-n (lásd lejjebb). - A fájl karakterkészlete maradjon utf-8, a Formátum SQL.
- Kattints az oldal alján az Importálás gombra.
Sikeres importálás után zöld sávban „Az importálás sikeresen befejeződött, N lekérdezés került végrehajtásra.” üzenet jelenik meg, alatta a lefuttatott utasításokkal.
Figyelem: a zöld sáv akkor is megjelenik, ha az importálás közben hiba történt. Ilyenkor alatta egy piros Hiba doboz is látható a hibás utasítással és a „A MySQL mondta:” után a hibakóddal, az importálás pedig ennél az utasításnál megállt. Mindig görgess végig az eredményen. A leggyakoribb hibakódokat lejjebb találod.
Ha egy nagy importálás időtúllépéssel leáll, a Részleges importálás rész alapértelmezetten bekapcsolt beállítása miatt a phpMyAdmin megjegyzi, meddig jutott, és a fájl újbóli kiválasztása után onnan folytatja. Biztosabb azonban a tömörített fájl vagy az SSH.
WordPress adatbázis betöltése után
Ha egy WordPress oldal adatbázisát töltötted be egy új adatbázisba, a wp-config.php fájlban írd át a DB_NAME, DB_USER és DB_PASSWORD értékét az új adatbázis adataira, a $table_prefix pedig egyezzen a betöltött táblák előtagjával. Ha a domain is változott, a régi címeket a wp search-replace paranccsal cseréld le, ne az SQL fájlban szövegszerkesztővel. A teljes költözést a WordPress oldal áthozataláról szóló cikk írja le.
CSV fájl importálása egy táblába
Táblázatkezelőből (Excel, LibreOffice Calc, Google Táblázatok) mentett adatokat CSV formátumban egy meglévő táblába tölthetsz be.
- A bal oldali listában nyisd meg a táblát, majd kattints az Importálás fülre.
- Válaszd ki a CSV fájlt, a Formátum legyen CSV.
- Ha a fájl első sora oszlopneveket tartalmaz, az Ennyi számú lekérdezés (SQL esetén) kihagyása az elsőtől kezdve mezőbe írj 1-et. CSV-nél ez a fájl első sorait hagyja ki; ha 0 marad, a fejléc is adatsorként kerül a táblába.
- A Formátum specifikus opciók között az Oszlopok elválasztása ezzel mező alapértéke vessző (
,). A magyar beállítású Excel pontosvesszővel (;) menti a CSV-t, ilyenkor ezt írd a mezőbe. - Kattints az Importálás gombra.
A CSV oszlopainak sorrendje egyezzen a tábla oszlopaival. Ha eltér, vagy a fájlban kevesebb oszlop van, az Oszlopnevek mezőben vesszővel elválasztva sorold fel, melyik CSV-oszlop melyik táblaoszlopba kerüljön. Ha a táblázatkezelő felajánlja, a fájlt „CSV UTF-8” formátumban mentsd, különben az ékezetes betűk hibásan jelennek meg.
Importálás és exportálás SSH-n
Ha a csomagod tartalmaz SSH-hozzáférést (cP Premium, cP Pro, cP Pro 100), az SQL mentést a parancssori mysql (vagy a vele azonos mariadb) klienssel is betöltheted. Ennek nincs 50 MB-os korlátja és nem áll le időtúllépéssel, ezért a több száz megabájtos adatbázisokhoz ez a megfelelő út. A belépéshez SSH-kulcs kell, beállítását az SSH-kulcsról szóló cikk mutatja be.
- Töltsd fel a mentést SFTP-vel a tárhely saját könyvtárába, a
public_htmlmappán kívülre, hogy a böngészőből ne lehessen letölteni. -
Lépj be SSH-n, és töltsd be a fájlt az adatbázis felhasználójával. A jelszót az
Enter password:kérdésre add meg, így az nem kerül a parancssori előzményekbe:mysql -u felhasznalo_wp -p felhasznalo_wp < mentes.sqlTömörített mentést kicsomagolás nélkül is betölthetsz:
zcat mentes.sql.gz | mysql -u felhasznalo_wp -p felhasznalo_wp - Ha a parancs üzenet nélkül visszatér, a betöltés sikerült. Hiba esetén a kliens az első hibás utasításnál megáll, és kiírja a hibakódot és a sor számát, például
ERROR 1062 (23000) at line 1: Duplicate entry '1' for key 'PRIMARY'.
Az első felhasznalo_wp az adatbázis-felhasználó, a második az adatbázis neve; a cPanelben mindkettő a tárhely felhasználónevével kezdődik. Exportálni a mysqldump paranccsal tudsz:
mysqldump -u felhasznalo_wp -p --single-transaction felhasznalo_wp | gzip > mentes.sql.gz
A --single-transaction kapcsoló az InnoDB táblákról zárolás nélkül, egységes állapotban készít mentést, így a weboldal közben is működik. WordPressnél a wp db import és wp db export parancs a tárhelyen nem működik, mert a PHP-ban le vannak tiltva az ehhez szükséges függvények; helyettük a fenti parancsokat használd (WP-CLI cPanel tárhelyen).
Ha saját gépről szeretnél grafikus programmal (HeidiSQL, DBeaver, MySQL Workbench) importálni, ahhoz az adatbázis távoli elérését kell engedélyezned.
Gyakori importhibák
| Hibaüzenet | Mi okozza? | Megoldás |
|---|---|---|
#1044 - Access denied for user '…' to database '…' |
A mentés elején CREATE DATABASE és USE utasítás áll egy másik adatbázisnévvel, amelyhez a fióknak nincs joga. |
Töröld ezt a két sort a fájlból, és a phpMyAdminban előbb a céladatbázist válaszd ki. Exportáláskor hagyd kikapcsolva a CREATE DATABASE / USE utasítások hozzáadása kapcsolót. |
#1273 - Unknown collation: 'utf8mb4_0900_ai_ci' |
A mentés MySQL 8-ból készült, és olyan rendezési szabályt (collation) használ, amelyet a MariaDB 10.11 nem ismer. | Cseréld a fájlban a utf8mb4_0900_ai_ci szöveget mindenhol utf8mb4_unicode_ci-re. |
#1227 - Access denied; you need (at least one of) the SUPER, SET USER privilege(s) for this operation |
A nézetek, triggerek vagy tárolt eljárások egy másik felhasználó nevében vannak megadva, például DEFINER=`root`@`localhost`. |
Töröld a DEFINER=… részeket; a betöltött objektum ekkor az importáló felhasználóé lesz. |
#1062 - Duplikalt bejegyzes '…' a 'PRIMARY' kulcs szerint |
A táblában már vannak sorok ugyanazzal az azonosítóval. | Üres adatbázisba importálj, vagy exportáláskor kapcsold be a DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT / TRIGGER utasítások hozzáadása lehetőséget. |
| A fájl túl nagy, vagy a feltöltés megszakad | A mentés nagyobb 50 MB-nál, vagy túl sokáig tart a betöltése. | Tömörítsd gzip-pel, vagy töltsd be SSH-n. |
SSH-n az első két csere egy-egy paranccsal elvégezhető, az eredeti fájl változatlan marad:
sed 's/utf8mb4_0900_ai_ci/utf8mb4_unicode_ci/g' mentes.sql > javitott.sql
sed -E 's/DEFINER=`[^`]+`@`[^`]+`//g' mentes.sql > javitott.sql
A javított fájlt ezután a szokásos módon importáld.





