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.