Esittely
Tämä artikkeli on tarkoitettu käyttäjille, jotka yrittävät kirjautua MySQL:ään oikealla salasanalla, mutta saavat virheilmoituksen: ”Error 1045: Access denied for user (using password: YES)”
Jos olet unohtanut MySQL:n pääkäyttäjän salasanan, katso tämä artikkeli:
- MySQL:n pääkäyttäjän salasanan nollaaminen.
Jos yrität kirjautua sisään pääkäyttäjänä phpMyAdminin kautta, katso:
- Can’t log into phpMyAdmin: mysqli_real_connect(): (HY000/1698): Access denied for user ’root’@’localhost’
Understanding MySQL Users and Hosts
MySQL rajoittaa käyttäjän pääsyä käyttäjän host
-arvon perusteella. Oletusarvoisesti pääkäyttäjätilin ja uusien käyttäjien host
-arvo on localhost
, mikä tarkoittaa, että sisään voi kirjautua vain paikallisen koneen kautta tai phpMyAdminin kautta, jos se on asennettu samaan localhostiin. Jos yrität kirjautua localhost
-tilille etänä, se saattaa hylätä oikean salasanasi ja ilmoittaa ”Access denied for user (using password: YES)”.
Jos tarkastelemme esimerkkinä alla olevaa yksinkertaista MySQL-käyttäjäluetteloa:
+------------------+-------------+| User | Host |+------------------+-------------+| test-user1 | localhost || test-user3 | 10.0.53.185 || test-user2 | % |
Ylhäällä on kolme MySQL-käyttäjää, joilla on eri host
-arvot.
Katsotaanpa muutamia skenaarioita, joissa oikea salasana saatetaan hylätä host
-arvosta riippuen:
- Käyttäjä
- ✅ Voi kirjautua sisään
localhost
:sta eli koneesta, jossa MySQL-palvelu on käynnissä. - ✅ Voi kirjautua sisään phpMyAdminista, jos se on asennettu samalle localhostille.
- ❌Ei voi kirjautua sisään etäyhteydellä ja saa ilmoituksen ”Access denied for user (using password: YES)”.
- ✅ Voi kirjautua sisään
- User
- ✅ Voi kirjautua sisään vain IP-osoitteesta
10.0.53.185
. - ❌ Ei voi kirjautua sisään mistään muusta IP-osoitteesta ”Access denied for user (using password: YES)”.
- ❌ Ei voi kirjautua localhostista ”Access denied for user (using password: YES)”.
- ❌ Ei voi kirjautua phpMyAdminista ”Access denied for user (using password: YES)”.
- ✅ Voi kirjautua sisään vain IP-osoitteesta
- User
%
- ✅ Voi kirjautua mistä tahansa (
%
on jokerimerkki).
- ✅ Voi kirjautua mistä tahansa (
MySQL-käyttäjän isäntäarvon muuttaminen
Voit muuttaa käyttäjän isäntäarvoa käyttämällä MySQL:n pääkäyttäjätiliä tai mitä tahansa tiliä, jolla on superkäyttäjän oikeudet. Tämä voidaan tehdä komentorivin tai phpMyAdminin kautta.
Komentorivin kautta
MySQL-tietokantaan on päästävä käsiksi root-käyttäjällä tai superkäyttäjällä, jolla on pääsy MySQL:n Käyttäjät-taulukkoon.
Juuritiliin pääsee oletusarvoisesti käsiksi vain localhostin kautta, joten saatat saada tulosteen ”Pääsy evätty käyttäjältä (salasanaa käyttävältä: KYLLÄ) kielletty (Access denied for user (using password: YES))”, jos yrität kirjautua sisään etänä. Tällaisessa tapauksessa sinun on jotenkin saatava paikallinen pääsy palvelimelle.
Kirjautuaksesi paikalliseen MySQL-tietokantaan:
mysql -u root -p
Kirjautuaksesi etäkäytössä olevaan MySQL-tietokantaan korvaa yksinkertaisesti hostname_or_ip
omalla tunnuksellasi.
mysql -u root -h hostname_or_ip -p
Luetteloi tietokannassasi kaikki MySQL-käyttäjät ja niitä vastaavat isäntäkoneet.
SELECT User,Host FROM mysql.user;
Tulos:
+------------------+-------------+| User | Host |+------------------+-------------+| test-user1 | localhost || test-user3 | 10.0.53.185 || test-user2 | % |+------------------+-------------+3 rows in set (0.00 sec)
Yllä näemme listan MySQL-käyttäjistä ja heidän isäntäkumppaneistaan.
Jos haluamme kirjautua sisään test-user1
:n avulla etäkirjautumalla mistä tahansa, meidän täytyy vaihtaa host-arvo jokerimerkkiin %
, joka mahdollistaa etäkirjautumisen mistä tahansa. Turvallisuuden lisäämiseksi voit vaihtaa tämän IP-osoitteeksi.
Oheisessa esimerkissä muutamme test-user1
:n host-arvon localhost
:stä
%
tarkoittaa jokerimerkkiä ja sallii tämän käyttäjän kirjautua etänä mistä tahansa.
RENAME USER 'test-user1'@'localhost' TO 'test-user1'@'%';
MySQL-oikeudet on tyhjennettävä, jotta muutokset tulevat voimaan.
FLUSH PRIVILEGES;
Yritä nyt kirjautua sisään uudelleen etänä.
Via phpMyAdmin
Kirjaudu phpMyAdminiin pääkäyttäjätunnuksellasi (root-tililläsi) tai käyttäjätunnuksella, jolla on superkäyttäjän oikeudet.
- Kun olet kirjautunut phpMyadminiin, napsauta vasemmanpuoleisessa sarakkeessa olevaa
mysql
tietokantaa. - Klikkaa SQL-välilehteä.
- Kirjoita tai liitä SQL-kyselyruutuun:
SELECT User,Host FROM mysql.user;
luetellaksesi kaikki tietokannassa olevat MySQL-käyttäjät. - Klikkaa Go (Siirry) suorittaaksesi kyselyn.
Tässä vaiheessa näkyvissäsi pitäisi nyt olla luettelo kaikista MySQL-käyttäjistä ja heitä vastaavista isännistä.
MySQL-käyttäjän isäntäarvon muuttaminen:
- Kaksoisnapsauta sen käyttäjän vieressä olevaa isäntäkenttää, jonka haluat muuttaa (alla punaisella).
- Kirjoita
%
, jos haluat sallia kenen tahansa kirjautumisen tähän käyttäjään mistä tahansa. Voit myös muuttaa tämän etä-IP:ksi paremman turvallisuuden vuoksi. - Tallenna muutokset painamalla
ENTER
näppäimistöllä.
Et ole vielä valmis. Sinun on nyt huuhdottava MySQL-oikeudet.
- Klikkaa SQL-välilehteä uudelleen
- Kirjoita tai liitä SQL-kyselyruutuun:
FLUSH PRIVILEGES;
- Klikkaa Go suorittaaksesi kyselyn.
Sinun pitäisi nyt pystyä kirjautumaan etänä.
5.00 (2 ääntä)
Kertoisitteko minulle, jos siitä oli apua. Seuraa minua Twitterissä, Facebookissa ja YouTubessa, tai 🍊 osta minulle smoothie.
p.s. Lisäsin AdSense-tulojani 200% AI:n avulla 🤖. Lue Ezoic-arvosteluni saadaksesi tietää miten.