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 az Azure Database for MySQL rugalmas kiszolgálóra való migrálás vagy fejlesztés során először találkozhatnak.

Gyakori Csatlakozás ion-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ékeinek 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... Csatlakozás ion id: 64897 Aktuális adatbázis: *** NONE *** ERROR 1184 (08S01): Megszakított kapcsolat 22 db: "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 az alábbiakban néhány gyakori hibát tapasztalhat:

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. Azt 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 Standard kiadásT_UStandard kiadásR_ID jogosultságra van szüksége

A fenti hiba akkor fordulhat elő, amikor a CREATE VIEW parancsot DEFINER-utasításokkal hajtja végre 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 Standard kiadásT_UStandard kiadásR_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 nézet rendelkezik eltérő engedélyekkel rendelkező különböző definiálókkal, 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ópéldányra. A Mysqldump Standard kiadás T @@Standard kiadásSSION.sql_log_bin=0 utasítást ad hozzá 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.

Standard kiadás T @MYSQLDUMP_TEMP_LOG_BIN = @@Standard kiadás SSION. SQL_LOG_BIN; Standard kiadás T @@Standard kiadás SSION. SQL_LOG_BIN= 0; Standard kiadás T @@GLOBAL. GTID_PURGED=''; Standard kiadás T @@Standard kiadás SSION. 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 a jelszavát megváltoztatják, 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.

További lépések

Ha nem találta meg a keresett választ, fontolja meg a következő lehetőségeket: