Előszó
Ez a cikk azoknak a felhasználóknak szól, akik helyes jelszóval próbálnak bejelentkezni a MySQL rendszerbe, de hibát kapnak: “Error 1045: Access denied for user (using password: YES)”
Ha elfelejtette a MySQL root jelszavát, olvassa el ezt a cikket:
- How to Reset the MySQL root password.
Ha root felhasználóként próbál bejelentkezni a phpMyAdmin-on keresztül, kérjük, tekintse meg:
- Can’t log into phpMyAdmin: mysqli_real_connect(): (HY000/1698): root’@’localhost’
Understanding MySQL Users and Hosts
A MySQL a felhasználó hozzáférését a felhasználó host
értéke alapján korlátozza. Alapértelmezés szerint a root fiók és az új felhasználók host
értéke localhost
, ami azt jelenti, hogy csak a helyi gépen vagy a phpMyAdminon keresztül lehet bejelentkezni, ha ugyanazon a localhoston van telepítve. Ha távolról próbálsz bejelentkezni egy localhost
fiókba, akkor a helyes jelszavadat a “Access denied for user (using password: YES)” (Hozzáférés megtagadva a felhasználó számára (jelszó használata: IGEN)) szöveggel utasíthatja vissza.
Ha példaként megnézzük az alábbi egyszerű MySQL felhasználói listát:
+------------------+-------------+| User | Host |+------------------+-------------+| test-user1 | localhost || test-user3 | 10.0.53.185 || test-user2 | % |
Fentebb három MySQL felhasználó van különböző host
értékekkel.
Nézzünk meg néhány forgatókönyvet, ahol a host
értéktől függően a helyes jelszó elutasításra kerülhet:
- User
- ✅ Be tud jelentkezni a
localhost
-ról, vagyis arról a gépről, amelyen a MySQL szolgáltatás fut. - ✅ Be tud jelentkezni a phpMyAdminból, ha ugyanazon a localhoston van telepítve.
- ❌Távolról nem tud bejelentkezni, és a következő üzenetet kapja: “Access denied for user (using password: YES)”.
- ✅ Be tud jelentkezni a
- User
- ✅ Csak a
10.0.53.185
IP címről tud bejelentkezni. - ❌ Más IP címről nem tud bejelentkezni “Access denied for user (using password: YES)”.
- ❌ Nem tud bejelentkezni a localhostról “Access denied for user (using password: YES)”.
- ❌ Nem tud bejelentkezni a phpMyAdminról “Access denied for user (using password: YES)”.
- ✅ Csak a
- User
%
- ✅ Bárhonnan bejelentkezhet (
%
egy joker).
- ✅ Bárhonnan bejelentkezhet (
MySQL-felhasználó hosztértékének módosítása
Megváltoztathatja egy felhasználó hosztértékét a MySQL root fiókjával vagy bármely, superuser jogosultságokkal rendelkező fiókkal. Ezt parancssoron vagy a phpMyAdmin segítségével teheti meg.
Parancsvonalon keresztül
A MySQL-adatbázishoz a root vagy a MySQL Users táblához hozzáféréssel rendelkező szuperfelhasználó használatával kell hozzáférnie.
A root fiók alapértelmezés szerint csak a localhostról érhető el, ezért előfordulhat, hogy a “Access denied for user (using password: YES)” üzenetet kapja, ha távolról próbál bejelentkezni. Ilyen esetben valahogyan helyi hozzáférést kell szereznie a szerverhez.
Lokális MySQL adatbázisba való bejelentkezéshez:
mysql -u root -p
Távoli MySQL adatbázisba való bejelentkezéshez egyszerűen helyettesítse a hostname_or_ip
-t a sajátjával.
mysql -u root -h hostname_or_ip -p
Miután bejelentkezett a MySQL-be, listázza ki az összes MySQL felhasználót és a hozzájuk tartozó hostokat az adatbázisban.
SELECT User,Host FROM mysql.user;
Eredmény:
+------------------+-------------+| User | Host |+------------------+-------------+| test-user1 | localhost || test-user3 | 10.0.53.185 || test-user2 | % |+------------------+-------------+3 rows in set (0.00 sec)
Fentebb láthatjuk a MySQL felhasználók és a hozzájuk tartozó hosztok listáját.
Ha a test-user1
segítségével bárhonnan távolról szeretnénk bejelentkezni, akkor a host értéket a %
jokerre kell cserélnünk, ami lehetővé teszi a távoli bejelentkezést bárhonnan. A fokozott biztonság érdekében ezt IP-címre is módosíthatja.
Az alábbi példában a test-user1
host értékét localhost
-ról %
%
-re módosítjuk, ami wildcardot jelent, és lehetővé teszi, hogy ez a felhasználó bárhonnan távolról bejelentkezzen.
RENAME USER 'test-user1'@'localhost' TO 'test-user1'@'%';
A változtatások érvénybe lépéséhez le kell törölnie a MySQL jogosultságokat.
FLUSH PRIVILEGES;
Most próbáljon meg újra bejelentkezni távolról.
Via phpMyAdmin
Lépjen be a phpMyAdminba a root fiókjával vagy egy superuser jogosultságokkal rendelkező fiókkal.
- A phpMyadminba bejelentkezve kattintson a
mysql
adatbázisra a bal oldali oszlopban. - Kattintson az SQL fülre.
- Típust vagy beillesztést írjon az SQL-lekérdezés mezőbe:
SELECT User,Host FROM mysql.user;
az adatbázisban lévő összes MySQL-felhasználó listájához. - Kattintson a Go gombra a lekérdezés futtatásához.
Ezután látnia kell az összes MySQL-felhasználó és a hozzájuk tartozó hosztok listáját.
Egy MySQl felhasználó host értékének megváltoztatásához:
- Kattintson duplán a megváltoztatni kívánt felhasználó melletti host mezőre (alul piros színnel).
- A
%
beírásával bárki bárhonnan beléphet ebbe a felhasználóba. A nagyobb biztonság érdekében ezt távoli IP címre is módosíthatja. - A módosítások mentéséhez nyomja meg a
ENTER
billentyűzetet.
Azzal még nem végzett. Most le kell törölnie a MySQL jogosultságokat.
- Kattintson újra az SQL lapra
- Típust vagy beillesztést írjon az SQL-lekérdezés mezőbe:
FLUSH PRIVILEGES;
- Kattintson a Go gombra a lekérdezés futtatásához.
Távolról most már be kell tudnia jelentkezni.
Mondja meg, ha ez segített. Kövess a Twitteren, a Facebookon és a YouTube-on, vagy 🍊 vegyél nekem egy turmixot.
p.s. 200%-kal növeltem az AdSense bevételeimet az AI használatával 🤖. Olvassa el az Ezoic értékelésemet, hogy megtudja, hogyan.