A rugalmas Azure Database for MySQL-kiszolgáló csatlakozási problémáinak 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 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 az érintett három réteg bármelyikében létezhetnek: 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.
  • Csatlakozás ion 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).
  • Csatlakozás ion-készlet (paraméterek és konfiguráció), ha van használatban.

Fontos annak meghatározása is, hogy az adatbázis-kapcsolat problémája egyetlen ügyféleszközt vagy több ügyféleszközt érint. Ha a hibák több ügyfél közül csak egyet érintenek, akkor a probléma valószínűleg az adott ügyfélnél van. Ha azonban minden ügyfél ugyanazt a hibát tapasztalja, akkor valószínűbb, hogy a probléma az adatbázis-kiszolgáló oldalán vagy a közbülső hálózatban van.

Mindenképpen vegye figyelembe a munkatúlterhelés lehetőségét is, különösen akkor, ha egy alkalmazás nagyon rövid idő alatt rengeteg kapcsolatot nyit meg. Ennek vizsgálatához olyan metrikákat használhat, mint a "Total Csatlakozás ions", az "Active Csatlakozás ions" és a "Megszakított Csatlakozás ions".

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.).

Ügyféloldali 2005-ös hibakódok

Az alábbi táblázatban néhány ügyféloldali 2005-ös hibakódra vonatkozó gyorshivatkozás található.

2005-ös HIBAkód Megjegyzések
(11) "EAI_SYSTEM - rendszerhiba" Hiba van a DNS-feloldásban az ügyféloldalon. Nem rugalmas Azure Database for MySQL-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" Az ügyfél DNS-kiszolgálójához való csatlakozásnál időkiesés történt. Nem rugalmas Azure Database for MySQL-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 történik, és amikor egy hibaüzenetet néz, például :"ERROR 2003 (HY000): Nem lehet csatlakozni az Azure Database for MySQL rugalmas kiszolgálóhoz a "mysql-example.mysql.database.azure.com" (111)" címen, a végén lévő számmal (99, 110, 111, 113 stb.).

Ügyféloldali hibakódok 2003-ra

Az alábbi táblázatban néhány ügyféloldali 2003-as hibakódra vonatkozó gyorshivatkozás található.

HIBA 2003-kód Megjegyzések
(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" A megadott IP-címhez való kapcsolódás megszakadt. 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 tartalmaz útvonalat ahhoz a hálózathoz, amelyen az adatbázis-kiszolgáló található. Ellenőrizze az ügyfélkészülék hálózati konfigurációját.

Other error codes

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 Megjegyzések
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. Ki kell értékelni, hogy miért jön létre ennyi kapcsolat az adatbázissal szemben.
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.
"1.2.3.4 gazdagép" 1129-ben hiba van blokkolva, mert sok kapcsolati hiba történt" 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). Ahogy a hibaüzenetben is szerepel, az adatbázis admin felhasználójának a FLUSH HOSTS; címet kell futtatnia a probléma elhárításához.

Megjegyzé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.

További lépések

Ha társválaszt szeretne keresni a legfontosabb kérdésekre, vagy fel szeretne tenni vagy megválaszolni egy kérdést, látogasson el a Stack Overflow webhelyre.