Okai hozzáférés megtagadva hiba (hozzáférés megtagadva) - dokumentáció mysql 4, 5 orosz

Ha megpróbál csatlakozni a MySQL szerver, hibát észlel Hozzáférés megtagadva. Az alábbi listából. Ez felsorolja azokat az intézkedéseket lehet tenni, hogy megoldja ezt a problémát:







Ne futtatása telepítés után a MySQL mysql_install_db script beállítani a kezdeti tartalmát a támogatási táblázat? Ha nem, tegye meg. Lásd beállítása eredetileg MySQL jogosultságok. Ellenőrizze az eredeti kiváltságokat a következő parancsot:

Csatlakozó történni hiba nélkül. Azt is ellenőrizze, hogy a könyvtár adatbázis MySQL user.MYD fájlt. Általában ez a PATH / var / mysql / user.MYD könyvtárban. ahol PATH - az utat a MySQL telepítési gyökérkönyvtárban.

Miután az új telepítést kell kapcsolódni a szerverhez, és hozzon létre a felhasználók és engedélyeinek beállítása nekik:

Kiszolgáló megengedi, mivel MySQL felhasználó nevét a root felhasználó nincs jelszava kezdetben. De ez is biztonsági kockázatot jelent, ezért ha megteremti a másik MySQL felhasználó, akkor többek között, ki kell jelölnie egy jelszót a root felhasználó. Ha megpróbál csatlakozni root, akkor az alábbi hibaüzenetet kaphatja:

ez azt jelenti, hogy a felhasználó nincs bejegyzés, amelynek értéke „root” táblázatot a felhasználó oszlopban és mysqld nem tudja meghatározni a hostname meg ügyfele. Ebben az esetben újra kell indítani a szervert a lehetőséget --skip-támogatás-asztalok és módosítsa az / etc / hosts vagy \ windows \ hosts. adj egy bejegyzést a gépünkhöz.

Ha ezt a hibát, mint:

ez azt jelenti, hogy a rossz jelszót. Lásd beállítása jelszavak. Ha elfelejtette a jelszót a root felhasználó. majd indítsa újra mysqld a --skip-támogatás-asztalok megváltoztatni a jelszót. Lásd Hogyan állítsa vissza elfelejtett root jelszót. Ez a hiba akkor is előfordulhat, ha nem állított be jelszót egyáltalán -, ami azt jelenti, hogy bizonyos my.ini fájl rossz jelszót. Lásd paraméter fájlok my.cnf. Fel kell számolni az opciós fájlokat, akkor használja a --no- alapértelmezettel. az alábbiak szerint:

Már van egy script mysql_fix_privilege_tables frissítése során a meglévő MySQL telepítés, ha a telepített verzió - legkorábban 3.22.11, és frissül a 3.22.11 vagy később? Ha nem, tegye meg. Kezdve MySQL 3.22.11, a GRANT utasítás lett funkcionális kiváltság táblastruktúrát megváltozott.

Ha az edzés során, a kiváltságok megváltozott, akkor lehetséges, hogy megváltoztatták a superuser. Újratöltés a támogatás táblázatok nemcsak az új ügyfélcsoportok, hanem a meglévőket, amint az a rész amikor Privilege változások érvényre.

Ha nem tud a jelszót dolgozni, ne feledje, hogy PASSWORD () függvényt kell használni, ha megadjuk a jelszót az INSERT. UPDATE vagy JELSZÓBEÁLLÍTÁS. Ha megad egy jelszót a GRANT utasítással. Azonosítottak BY vagy a MySQLadmin jelszó paranccsal. PASSWORD () függvény nem szükséges. Lásd beállítása jelszavak.

localhost - egyet jelent a neve a helyi gépre, és ha a gazda nincs kifejezetten megadva, az is az alapértelmezett, a gazda nevét, amelyhez kliens próbál csatlakozni. Azonban kapcsolatok localhost nem működik, ha az operációs rendszer a MIT-flow és a MySQL-nél régebbi változatai 3.23.27 (kapcsolódás localhost készülnek Unix aljzatok, mivel nem támogatja MIT idejű technológia folyik). Ahhoz, hogy az ilyen rendszerek ezt a problémát, akkor egyértelműen meg kell határozni a nevét, a szerver host a --host opciót. Így jön létre a kapcsolat a szerverrel mysqld TCP / IP protokollt. Ebben az esetben a felhasználó a táblázat bejegyzéseket. a szerveren tárolt gazda, meg kell állapítani a tényleges fogadó nevét. (Ez akkor is igaz, amennyiben a kliens program és a szerver futhat ugyanazon a host).

Ha megpróbál csatlakozni egy adatbázis segítségével mysql -u user_name db_name parancs megjelenik Access denied. ennek az oka valószínűleg abban rejlik, hogy a felhasználó táblázatban. Ennek tesztelésére a következő parancsot mysql -u root mysql és adja meg a következő SQL-kimutatás:

Ennek eredményeként, a rekord fog megjelenni az oszlopok Host és felhasználói. az érintett nevét, a számítógép és a MySQL felhasználó nevét.

Message Access denied tájékoztatja, hogy milyen nevet próbál bejelentkezni, a gazda nevét, ahonnan próbál kapcsolatot létesíteni, és azt, hogy használják ezt a jelszót, vagy sem. Általános szabály, hogy a felhasználó tábla egy rekordját, amely pontosan megegyezik a hostname és a felhasználó nevét megadva a hibaüzenet. Például, ha egy hibaüzenet, amely azt mondja használata jelszó: NEM. Ez azt jelenti, hogy megpróbálta bejelentkezéshez jelszó megadása nélkül.







Ha megpróbál csatlakozni nem azon a számítógépen, amelyen fut a MySQL szerver, és a többi, hibaüzenetet kap, az alábbi hibaüzenetet a felhasználói tábla nincs húr a gazda nevét:

A Linux, a hiba okának lehet, hogy a bináris változatát MySQL összeállítani glibc, mint Ön használja. Ebben az esetben, akkor sem kell frissíteni az OS / glibc, az Ön által használt, vagy töltse le a forráskódot és fordítsd le a MySQL szerver magad. Általános szabály, hogy a forrás RPM lefordítani és telepíteni elemi, így nem lesz komoly probléma.

Próbálja meg kitalálni, hogy mi a baj a DNS-kiszolgáló és a probléma megoldásához.

Kezdje mysqld a --skip-name-elhatározás.

Kezdés mysqld a --skip-host-cache.

Csatlakozás localhost, ha a szerver és a kliens fut ugyanazon a számítógépen.

Tedd a kliens gép nevét az / etc / hosts.

Ha a mysql -u user_name teszt jól működik, és a csapat mysql -u user_name other_db_nam e - nem a db táblázat nem tartozik adat other_db_name.

Ha a mysql -u user_name db_name parancs végrehajtása sikeres a számítógépen, ahol a szerver és a mysql -u host_name -u user_name db_name nem működik, ha a teljesítő másik kliens gépen, a felhasználó asztal vagy a db, ez az ügyfél gépen nincs regisztrálva.

Ha nem találja a hiba okát, hozzáférés megtagadva. eltávolítani a felhasználói tábla összes rekordját, amely az értéket a Host mező helyettesítő karaktereket (bejegyzéseket, amelyek tartalmazzák a karakterek „”% „” vagy „” „_”). Egy nagyon gyakori hiba a következő: a felhasználó behelyezi új rekord értéke „%” a Host mezőben, és az értéke „bizonyos felhasználó” - a felhasználói területen. hívő majd kapcsolódni ugyanazt az autót fog használni localhost. Ez a számítás hibás, és az oka, hogy alapértelmezés szerint kiváltságok közé felvétel értéke „localhost” a fogadó területen, és az üres mező Felhasználó. És mivel ez a rekord érték „localhost” pontosabb, mint „%”, akkor, amikor csatlakoztatja a localhost megelőzi az új rekord, és ennek megfelelően kell kiválasztani és a munka! Jobb ebben az esetben az, hogy helyezze a második bejegyzés értéke „localhost” a Host mezőben, és az értéke „some_user” - a Felhasználó vagy törölni egy rekordot értéke „localhost” a fogadó területen, és az üres mező Felhasználó.

Ha az alábbi hibaüzenet, akkor a probléma valószínűleg a db asztal, vagy fogadó tábla:

Ha a kiválasztott bejegyzés a db asztal. Oszlop Host - üres, győződjön meg arról, hogy a fogadó tábla legalább egy megfelelő bejegyzés jelzi, hogy mely gépek a rekord vonatkozik a db asztal. Ha hiba történik, ha a SELECT SQL-parancsot. INTO OUTFILE vagy LOAD DATA INFILE. valamit a rekord a felhasználó táblázatban. Valószínűleg nincs engedélye, hogy FILE jogosultságokat.

Ne feledje, hogy kliens program fogja használni kapcsolatot megadott paraméterek konfigurációs fájlokat vagy környezeti változókat. Lásd Környezeti változók. Ha felmerül a gyanú, hogy a kliens elküldi a rossz paraméter az alapértelmezett kapcsolat, abban az esetben, ha nem adja meg nekik a parancssorban, ellenőrizze a környezet és a my.cnf fájlt a saját könyvtárban. Ön is ellenőrizheti a MySQL konfigurációs fájlok kapcsolatos összes rendszer, bár az ügyfél kapcsolat paramétereit alig látható itt. Lásd paraméter fájlok my.cnf. Ha Hozzáférés megtagadva hiba lép fel, ha a kliens program nélkül lehetőséget, hogy győződjön meg arról, hogy egyik lehetőség fájlok ismert régi jelszót! Lásd paraméter fájlok my.cnf.

Ha módosítja a támogatási táblák közvetlenül (egy INSERT vagy UPDATE), és a módosítások úgy tűnik, hogy figyelmen kívül hagyja, akkor kell kiadnia a flush KIVÁLTSÁGOK nyilatkozat vagy végre MySQLadmin flush-kiváltságokat - annak érdekében, hogy hatására a szerver újraolvassa a támogatás táblázatok. Egyébként a módosítások nem lépnek érvénybe, amíg a következő alkalommal, amikor a szerver újraindul. Ne feledje, hogy miután beállította a jelszó a felhasználó nevét, akkor meg kell adnia, csak reset után jogosultságokat, mert a szerver nem is tudja, hogy a jelszó megváltoztatása!

Ha problémákat tapasztal a hozzáférést, ha használt Perl-, PHP, Python- vagy ODBC-programokat, amelyek megpróbálnak csatlakozni a szerverhez a mysql -u user_name db_name vagy mysql -u user_name -pyour_pass db_name. Ha a mysql kliens biztosítja a kapcsolatot, a probléma nem a hozzáférési jogosultságokat, és a program. (Megjegyzendő, hogy a -p és a jelszó nem üres, meg a jelszót, akkor is használhatja a szintaxis --password = your_pass Ha csak a nagyon -p opció MySQL kérni fogja a jelszót.).

Ha vizsgálatot kezd a démon mysqld a --skip-támogatás-asztalok. Aztán meg lehet változtatni a MySQL támogatás táblázatok és használja a script mysqlaccess csekket, hogy a módosításokat, amelyeket a kívánt hatást. Ha elégedett az eredménnyel, fuss mysqladmin flush-kiváltságokat. kötelezze a mysqld szerver megkezdi az új támogatási táblázat. Figyelmeztetés. újratölteni a támogatási táblázat felülbírálja az opció --skip-támogatás-asztalok. Ez lehetővé teszi, hogy erőt a kiszolgáló elkezdi használni az új támogatási táblázat nem fejezték a munkát, és újraindul.

Ha minden kötél szakad, indítsa el a mysqld démon démon hibakeresés opciót (például --debug = d, általános, lekérdezés). Ennek eredményeként, látni fogja információt a hiba a csatlakoztatott, amely bemutatja a gazda és a felhasználói, valamint az összes feldolgozott parancsokat. Lásd Nyomkövető fájl létrehozása.

Ha bármilyen probléma a MySQL privilégium táblákból, és úgy gondolja, hogy meg kell jelentse, hogy a levelezési listára, szükséges csatolni jelentését kinyomtatott MySQL támogatás táblázatok. Ez megtehető mysqldump mysql parancsot. Hibajelentések, valamint más esetekben küldik át mysqlbug script. Lásd Hogyan jelentsd a hibákat és problémákat. Bizonyos esetekben a szkript mysqldump újra kell indítani mysqld a --skip-támogatás-asztalok.