Megosztás a következőn keresztül:


A rugalmas Azure Database for MySQL-kiszolgáló csatlakozási problémáinak elhárítása

A MySQL Community Edition kapcsolatonként egy szál használatával kezeli a kapcsolatokat. Ennek eredményeképpen minden felhasználói kapcsolat dedikált operációsrendszer-szálat kap a mysqld folyamat során.

Lehetséges problémák merülnek fel az ilyen típusú kapcsolatkezeléssel kapcsolatban. A memóriahasználat például viszonylag magas, ha nagy számú felhasználói kapcsolat van, még akkor is, ha tétlen kapcsolatok. Emellett a belső kiszolgálói versengés és a környezetváltás többletterhelése is magasabb, ha több ezer felhasználói kapcsolattal dolgozik.

Gyakori csatlakozási hibák diagnosztizálása

Amikor a rugalmas Azure Database for MySQL-kiszolgáló példánya csatlakozási problémákat tapasztal, ne feledje, hogy a problémák a három érintett réteg bármelyikében lehetnek: az ügyféleszköz, a hálózat vagy a rugalmas Azure Database for MySQL-kiszolgálópéldány.

Ennek eredményeképpen minden alkalommal, amikor csatlakozási hibákat diagnosztizál, mindenképpen fontolja meg a következők teljes részleteit:

  • Ügyfél, beleértve a következőket:
    • Konfiguráció (helyszíni, Azure-beli virtuális gép stb. vagy DBA-gép).
    • Operációs rendszer.
    • Szoftverek és verziók.
  • Kapcsolati sztring és a benne foglalt paraméterek.
  • Hálózati topológia (ugyanaz a régió? ugyanaz az AZ? tűzfalszabályok? útválasztás).
  • Kapcsolatkészlet (paraméterek és konfiguráció), ha van használatban.

Azt is fontos meghatározni, hogy az adatbázis-kapcsolati probléma egyetlen ügyféleszközt vagy több ügyféleszközt érint-e. Ha a hibák több ügyfél közül csak az egyiket érintik, akkor valószínű, hogy a probléma az ügyféllel van. Ha azonban minden ügyfél ugyanazt a hibát tapasztalja, valószínűbb, hogy a probléma az adatbázis-kiszolgáló oldalán vagy a hálózatkezelés között van.

Mindenképpen vegye figyelembe a számítási feladatok túlterhelésének lehetőségét is, különösen akkor, ha egy alkalmazás rövid idő alatt megnyitja a kapcsolatok megugrását. Ennek vizsgálatához olyan metrikákat használhat, mint a "Total Connections", "Active Connections" és "Megszakított kapcsolatok".

Amikor kapcsolatot létesít egy ügyféleszközről vagy alkalmazásból, a mysql első fontos hívása a getaddrinfo, amely elvégzi a DNS-fordítást az IP-címhez megadott végpontról. Ha a cím lekérése sikertelen, a MySQL egy hibaüzenetet jelenít meg, például "ERROR 2005 (HY000): Unknown MySQL server host "mysql-example.mysql.database.azure.com" (11)" és a végén lévő számot (11, 110 stb.).

2005-ös ügyféloldali hibakódok

Az ügyféloldali 2005-ös hibakódokkal kapcsolatos rövid útmutatók az alábbi táblázatban jelennek meg.

2005-ös HIBAkód Jegyzetek
(11) "EAI_SYSTEM - rendszerhiba" Hiba van a DNS-feloldásban az ügyféloldalon. Nem az Azure Database for MySQL rugalmas kiszolgálóval kapcsolatos probléma. A hibaelhárításhoz használja a dig/nslookup szolgáltatást az ügyfélnél.
(110) "ETIMEDOUT - A kapcsolat időzített leállt" Időtúllépés történt az ügyfél DNS-kiszolgálójával való csatlakozáskor. Nem az Azure Database for MySQL rugalmas kiszolgálóval kapcsolatos probléma. A hibaelhárításhoz használja a dig/nslookup szolgáltatást az ügyfélnél.
(0) "név ismeretlen" A megadott név nem volt feloldható a DNS által. Ellenőrizze az ügyfél bemenetét. Ez valószínűleg nem jelent problémát a rugalmas Azure Database for MySQL-kiszolgálóval kapcsolatban.

A második hívás a mysql-ben szoftvercsatorna-kapcsolattal van, és ha egy hibaüzenetet néz, például "ERROR 2003 (HY000): Nem lehet csatlakozni a rugalmas Azure Database for MySQL-kiszolgálóhoz a "mysql-example.mysql.database.azure.com" (111)" címen, a végén található szám (99, 110, 111, 113 stb.).

Ügyféloldali hiba 2003-kód

Az ügyféloldali 2003-ás hibakódokkal kapcsolatos rövid útmutatók az alábbi táblázatban jelennek meg.

HIBA 2003-kód Jegyzetek
(99) "EADDRNOTAVAIL - A kért címet nem lehet hozzárendelni" Ezt a hibát nem a rugalmas Azure Database for MySQL-kiszolgáló okozza, hanem az ügyféloldalon.
(110) "ETIMEDOUT - A kapcsolat időzített leállt" Időtúllépés történt a megadott IP-címhez való csatlakozáskor. Valószínűleg biztonsági (tűzfalszabályok) vagy hálózati (útválasztási) probléma. Ez általában nem a rugalmas Azure Database for MySQL-kiszolgálóval kapcsolatos probléma. A hibaelhárításhoz használja a nc/telnet/TCPtraceroute címet az ügyféleszközön.
(111) "ECONNREFUSED - A kapcsolat elutasítva" Bár a csomagok elérték a célkiszolgálót, a kiszolgáló elutasította a kapcsolatot. Ez lehet, hogy rossz szerverhez vagy rossz porthoz próbál csatlakozni. Ez azt is jelentheti, hogy a célszolgáltatás (rugalmas Azure Database for MySQL-kiszolgáló) leállt, a feladatátvételből való helyreállítás, vagy az összeomlási helyreállításon megy keresztül, és még nem fogadja el a kapcsolatokat. Ez a probléma akár az ügyfél, akár a kiszolgáló oldalán jelentkezhet. A hibaelhárításhoz használja a nc/telnet/TCPtraceroute címet az ügyféleszközön.
(113) "EHOSTUNREACH - Host elérhetetlen" Az ügyféleszköz útválasztási táblája nem tartalmazza annak a hálózatnak az elérési útját, amelyen az adatbázis-kiszolgáló található. Ellenőrizze az ügyfélkészülék hálózati konfigurációját.

Egyéb hibakódok

A következő táblázatban az adatbázis-kiszolgálóval való hálózati kapcsolat sikeres létrehozása után fellépő problémákkal kapcsolatos néhány egyéb hibakódra vonatkozó gyorshivatkozás található.

Hibakód Jegyzetek
ERROR 2013 "Elveszett a kapcsolat a MySQL szerverrel" A kapcsolat létrejött, de utána megszakadt. Ez akkor fordulhat elő, ha egy olyan rendszerrel próbálnak kapcsolatot létesíteni, amely nem a MySQL (például egy MySQL kliens segítségével a 22-es porton lévő SSH-hoz való csatlakozáshoz). Ez akkor is előfordulhat, ha a szuperfelhasználó megöli a munkamenetet. Ez akkor is előfordulhat, ha az adatbázis leállítja a munkamenetet. Vagy utalhat az adatbázis-kiszolgáló problémáira, miután a kapcsolat létrejött. Ez bármikor megtörténhet az ügyfélkapcsolat élettartama alatt. Ez azt jelezheti, hogy az adatbázisban komoly probléma merült fel.
ERROR 1040 "Túl sok kapcsolat" A csatlakoztatott adatbázis-ügyfelek száma már elérte a beállított maximális számot. Értékelnie kell, hogy miért jön létre ennyi kapcsolat az adatbázissal.
ERROR 1045 "Hozzáférés megtagadva a felhasználó számára" Az ügyfél helytelen felhasználónevet vagy jelszót adott meg, ezért az adatbázis megtagadta a hozzáférést.
ERROR 2006 "A MySQL szerver eltűnt" Hasonlóan a ERROR 2013 "Elveszett a kapcsolat a MySQL szerverrel" bejegyzéshez az előző táblázatban.
ERROR 1317 "A lekérdezés végrehajtása megszakadt" Hiba, amelyet az ügyfél akkor kap, amikor az elsődleges felhasználó leállítja a lekérdezést, nem pedig a kapcsolatot.
ERROR 1129 "Az '1.2.3.4' állomás blokkolva van, mert sok kapcsolati hiba van" A "mysqladmin flush-hosts" feloldása – az egyetlen gépen lévő összes ügyfél le lesz tiltva, ha a gép egyik ügyfele többször is megpróbál helytelen protokollt használni a MySQL-hez való csatlakozáshoz (erre példa a MySQL-portra való csatlakozás). A hibaüzenet szerint az adatbázis rendszergazda felhasználójának futnia FLUSH HOSTS; kell a probléma elhárításához.

Feljegyzés

A csatlakozási hibákkal kapcsolatos további információkért tekintse meg a rugalmas Azure Database for MySQL-kiszolgálóval kapcsolatos kapcsolati problémákat vizsgáló blogbejegyzést.

Következő lépés