A rugalmas Azure Database for MySQL-kiszolgálóra való migrálás során vagy azt követően gyakran előforduló hibák elhárítása
A következőkre vonatkozik: Azure Database for MySQL – Egykiszolgálós Azure Database for MySQL – Rugalmas kiszolgáló
Fontos
Az önálló Azure Database for MySQL-kiszolgáló a kivonási útvonalon van. Határozottan javasoljuk, hogy frissítsen rugalmas Azure Database for MySQL-kiszolgálóra. További információ a rugalmas Azure Database for MySQL-kiszolgálóra való migrálásról: Mi történik az önálló Azure Database for MySQL-kiszolgálóval?
A rugalmas Azure Database for MySQL-kiszolgáló a MySQL közösségi verziójának teljes körűen felügyelt szolgáltatása. A MySQL-élmény egy felügyelt szolgáltatáskörnyezetben eltérhet a MySQL saját környezetben való futtatásától. Ebben a cikkben láthatja azokat a gyakori hibákat, amelyekkel a felhasználók első alkalommal telepíthetnek át vagy fejleszthetnek rugalmas Azure Database for MySQL-kiszolgálóra.
Gyakori csatlakozási hibák
HIBA 1184 (08S01): Megszakadt a 22-s kapcsolat a db-hez: "db-name" felhasználó: "felhasználó" gazdagép: "hostIP" (init_connect parancs nem sikerült)
A fenti hiba a sikeres bejelentkezés után, de a munkamenet létrehozásakor végrehajtott parancsok végrehajtása előtt jelentkezik. A fenti üzenet azt jelzi, hogy helytelen kiszolgálóparaméter-értéket init_connect
állított be, ami a munkamenet inicializálásának meghiúsulását okozza.
Vannak olyan kiszolgálóparaméterek, amelyek require_secure_transport
nem támogatottak a munkamenet szintjén, ezért a paraméterek értékének a használatával init_connect
történő módosítása 1184-es hibát eredményezhet, miközben csatlakozik a rugalmas Azure Database for MySQL-kiszolgálópéldányhoz az alábbiak szerint:
mysql-adatbázisok> megjelenítése; 2006-OS HIBA (HY000): A MySQL-kiszolgáló megszakadt, nincs kapcsolat. Újracsatlakozás... Kapcsolatazonosító: 64897 Jelenlegi adatbázis: *** NONE *** ERROR 1184 (08S01): Megszakadt a 22-s kapcsolat a db-hez: "db-name" felhasználó: "felhasználó" gazdagép: "hostIP" (init_connect parancs nem sikerült)
Megoldás: Állítsa alaphelyzetbe init_connect
az értéket az Azure Portal Kiszolgálóparaméterek lapján, és csak a támogatott kiszolgálóparamétereket állítsa be init_connect paraméter használatával.
A SUPER jogosultság és a DBA-szerepkör hiánya miatti hibák
A SUPER jogosultság és a DBA szerepkör nem támogatott a szolgáltatásban. Ennek eredményeképpen előfordulhat, hogy az alábbiakban néhány gyakori hiba jelenik meg:
1419-S HIBA: Nem rendelkezik SUPER jogosultsággal, és a bináris naplózás engedélyezve van ( érdemes lehet a kevésbé biztonságos log_bin_trust_function_creators változót használni)
A fenti hiba egy függvény létrehozása, az alábbi eseményindító vagy egy séma importálása során fordulhat elő. A DDL-utasítások, például a CREATE FÜGGVÉNY vagy a CREATE TRIGGER a bináris naplóba vannak írva, így a másodlagos replika végrehajthatja őket. A replika SQL-szál teljes jogosultságokkal rendelkezik, amelyek kihasználhatók a jogosultságok emeléséhez. A bináris naplózást engedélyező kiszolgálók veszélyének elhárításához a MySQL-motor megköveteli, hogy a tárolt függvénykészítők a szokásos CREATE RUTIN jogosultság mellett SUPER jogosultsággal rendelkezzenek.
CREATE FUNCTION f1(i INT)
RETURNS INT
DETERMINISTIC
READS SQL DATA
BEGIN
RETURN i;
END;
Megoldás: A hiba megoldásához állítsa be az 1 értéket log_bin_trust_function_creators
a portál kiszolgálóparaméterek paneljén, hajtsa végre a DDL-utasításokat, vagy importálja a sémát a kívánt objektumok létrehozásához. A jövőben a hiba elkerülése érdekében továbbra is fenntarthatja log_bin_trust_function_creators
az 1-et a kiszolgáló számára. Javasoljuk, hogy a log_bin_trust_function_creators
MySQL-közösség dokumentációjában kiemelt biztonsági kockázat minimális legyen a rugalmas Azure Database for MySQL-kiszolgálón, mivel a tárolónapló nem jelent fenyegetést.
1227-es HIBA (42000) a 101. sorban: Hozzáférés megtagadva; ehhez a művelethez (legalább az egyik) SUPER jogosultságra van szüksége. A művelet az 1. kilépési kóddal meghiúsult
A fenti hiba egy memóriaképfájl importálása vagy definiálókat tartalmazó eljárás létrehozása során fordulhat elő.
Megoldás: A hiba megoldásához a rendszergazdai felhasználó jogosultságokat adhat az eljárások létrehozásához vagy végrehajtásához a GRANT parancs futtatásával, ahogyan az alábbi példákban látható:
GRANT CREATE ROUTINE ON mydb.* TO 'someuser'@'somehost';
GRANT EXECUTE ON PROCEDURE mydb.myproc TO 'someuser'@'somehost';
Másik lehetőségként lecserélheti a definiálókat az importálási folyamatot futtató rendszergazdai felhasználó nevére az alább látható módon.
DELIMITER;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`127.0.0.1`*/ /*!50003
DELIMITER;;
/* Modified to */
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`AdminUserName`@`ServerName`*/ /*!50003
DELIMITER ;
1227-es HIBA (42000) a 295. sorban: Hozzáférés megtagadva; ehhez a művelethez (legalább egy) SUPER vagy SET_USER_ID jogosultságra van szüksége
A fenti hiba a CREATE VIEW definer utasításokkal történő végrehajtásakor fordulhat elő egy memóriaképfájl importálása vagy szkript futtatása során. A rugalmas Azure Database for MySQL-kiszolgáló nem engedélyezi a SUPER jogosultságokat vagy a SET_USER_ID jogosultságot egyetlen felhasználónak sem.
Megoldás:
- Ha lehetséges, a definiáló felhasználóval hajtsa végre a CREATE VIEW nézetet. Valószínű, hogy számos különböző definiáló eltérő engedélyekkel rendelkezik, ezért ez nem feltétlenül megvalósítható. VAGY
- Szerkessze a memóriaképfájlt vagy a CREATE VIEW szkriptet, és távolítsa el a DEFINER= utasítást a memóriaképfájlból. VAGY
- Szerkessze a memóriaképfájlt vagy a CREATE VIEW szkriptet, és cserélje le a definiáló értékeket olyan rendszergazdai engedélyekkel rendelkező felhasználóra, aki végrehajtja vagy végrehajtja a szkriptfájlt.
Tipp.
Sed vagy perl használatával módosíthat egy memóriaképfájlt vagy SQL-szkriptet a DEFINER= utasítás lecseréléséhez
1227-es HIBA (42000) a 18. sorban: Hozzáférés megtagadva; ehhez a művelethez (legalább az egyik) SUPER jogosultságra van szüksége
A fenti hiba akkor fordulhat elő, ha a memóriaképfájlt egy rugalmas Azure Database for MySQL-kiszolgálópéldányból próbálja importálni, és a GTID engedélyezve van a rugalmas Azure Database for MySQL-kiszolgáló célpéldányára. A Mysqldump a SET @@SESSION.sql_log_bin=0 utasítást hozzáadja egy memóriaképfájlhoz egy olyan kiszolgálóról, ahol GTID-k vannak használatban, ami letiltja a bináris naplózást a memóriaképfájl újratöltése közben.
Megoldás: A hiba megoldásához az importálás során távolítsa el vagy fűzzön megjegyzést a mysqldump fájl alábbi soraihoz, és futtassa újra az importálást, hogy biztosan sikeres legyen.
SET @MYSQLDUMP_TEMP_LOG_BIN = @@SESSION. SQL_LOG_BIN;
BEÁLLÍTÁS @@SESSION. SQL_LOG_BIN= 0; BEÁLLÍTÁS @@GLOBAL. GTID_PURGED=''; BEÁLLÍTÁS @@SESSION. SQL_LOG_BIN = @MYSQLDUMP_TEMP_LOG_BIN;
Gyakori csatlakozási hibák a kiszolgálói rendszergazdai bejelentkezéshez
Rugalmas Azure Database for MySQL-kiszolgálópéldány létrehozásakor a kiszolgálói rendszergazdai bejelentkezést a végfelhasználó biztosítja a kiszolgáló létrehozása során. A kiszolgálói rendszergazdai bejelentkezés lehetővé teszi új adatbázisok létrehozását, új felhasználók hozzáadását és engedélyek megadását. Ha a kiszolgáló rendszergazdai bejelentkezését törlik, az engedélyeit visszavonják, vagy módosítják a jelszavát, a kapcsolatok során előfordulhat, hogy csatlakozási hibák jelennek meg az alkalmazásban. Az alábbiakban néhány gyakori hibát ismertetünk.
1045-ÖS HIBA (28000): Hozzáférés megtagadva a felhasználónév@"IP-cím" felhasználóhoz (jelszó: IGEN)
A fenti hiba akkor fordul elő, ha:
- A felhasználónév nem létezik.
- A felhasználó felhasználónevét törölték.
- a jelszó módosul vagy alaphelyzetbe áll.
Megoldás:
Ellenőrizze, hogy a "felhasználónév" érvényes felhasználó-e a kiszolgálón, vagy véletlenül törölve van. A következő lekérdezést a rugalmas Azure Database for MySQL-kiszolgáló felhasználójának bejelentkezésével hajthatja végre:
select user from mysql.user;
Ha nem tud bejelentkezni a rugalmas Azure Database for MySQL-kiszolgálópéldányba a fenti lekérdezés végrehajtásához, javasoljuk, hogy állítsa alaphelyzetbe a rendszergazdai jelszót az Azure Portal használatával. Az Azure Portal jelszó-alaphelyzetbe állítási lehetősége segít a felhasználó újbóli létrehozásában, a jelszó alaphelyzetbe állításában és a rendszergazdai engedélyek visszaállításában, ami lehetővé teszi a bejelentkezést a kiszolgáló rendszergazdájával, és további műveleteket hajthat végre.