Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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.