Introduktion
Den här artikeln är för användare som försöker logga in på MySQL med ett korrekt lösenord men får ett fel: ”Error 1045: Access denied for user (using password: YES)”
Om du har glömt ditt lösenord för MySQL-roten kan du läsa den här artikeln:
- Hur du återställer MySQL:s root-lösenord.
Om du försöker logga in som root via phpMyAdmin, se:
- Can’t logga in i phpMyAdmin: mysqli_real_connect(): (HY000/1698): Access denied for user ’root’@’localhost’
Understanding MySQL Users and Hosts
MySQL begränsar användaråtkomst baserat på host-värdet för en användare. Som standard är host-värdet för rotkontot och nya användare inställt på localhost, vilket innebär att du bara kan logga in via den lokala maskinen eller via phpMyAdmin om den är installerad på samma localhost. Om du försöker logga in på ett localhost-konto på distans kan det hända att ditt korrekta lösenord avvisas med ”Access denied for user (using password: YES)”.
Om vi tittar på den här enkla MySQL-användarförteckningen nedan som ett exempel:
+------------------+-------------+| User | Host |+------------------+-------------+| test-user1 | localhost || test-user3 | 10.0.53.185 || test-user2 | % |
Ovanför har vi tre MySQL-användare med olika host-värden.
Låt oss ta en titt på några scenarier där ditt korrekta lösenord kan avvisas beroende på host-värdet:
- Användare
- ✅ Kan logga in från
localhost, det vill säga den maskin som MySQL-tjänsten körs på. - ✅ Kan logga in från phpMyAdmin om den är installerad på samma lokala värd.
- ❌Kan inte logga in på distans och får ”Access denied for user (using password: YES)”.
- ✅ Kan logga in från
- User
- ✅ Kan endast logga in från IP-adressen
10.0.53.185. - ❌ Kan inte logga in från någon annan IP-adress ”Access denied for user (using password: YES)”.
- ❌ Kan inte logga in från localhost ”Access denied for user (using password: YES)”.
- ❌ Kan inte logga in från phpMyAdmin ”Access denied for user (using password: YES)”.
- ✅ Kan endast logga in från IP-adressen
- User
%- ✅ Kan logga in från var som helst (
%är ett jokertecken).
- ✅ Kan logga in från var som helst (
Ändra en MySQL-användares värdvärde
Du kan ändra värdvärdet för en användare som använder MySQL-rootkontot eller något konto med superanvändarrättigheter. Detta kan göras via kommandoraden eller phpMyAdmin.
Via kommandoraden
Du måste komma åt din MySQL-databas med root eller en superanvändare som har åtkomst till MySQL Users-tabellen.
Rotkontot är som standard endast åtkomligt från localhost, så du kan få ”Access denied for user (using password: YES)” om du försöker logga in på distans. I sådana fall måste du på något sätt få lokal tillgång till servern.
För att logga in på en lokal MySQL-databas:
mysql -u root -p
För att logga in på en fjärrbaserad MySQL-databas ersätter du helt enkelt hostname_or_ip med din egen.
mysql -u root -h hostname_or_ip -p
När du väl är inloggad på MySQL, listar du alla MySQL-användare och deras motsvarande värdar i din databas.
SELECT User,Host FROM mysql.user;
Resultat:
+------------------+-------------+| User | Host |+------------------+-------------+| test-user1 | localhost || test-user3 | 10.0.53.185 || test-user2 | % |+------------------+-------------+3 rows in set (0.00 sec)
Ovanför kan vi se en lista över MySQL-användare och deras värdar.
Om vi vill logga in med hjälp av test-user1 på distans från var som helst, måste vi ändra host-värdet till jokertecknet %, vilket tillåter fjärrinloggning från var som helst. För ökad säkerhet kan du ändra detta till en IP-adress.
I exemplet nedan ändrar vi värdvärdet för test-user1 från localhost till %
% betyder jokertecken och gör det möjligt för den här användaren att fjärrlogga in var som helst.
RENAME USER 'test-user1'@'localhost' TO 'test-user1'@'%';
Du måste spola MySQL-privilegier för att ändringarna ska få effekt.
FLUSH PRIVILEGES;
Försök nu att logga in igen på distans.
Via phpMyAdmin
Logga in på phpMyAdmin med ditt root-konto eller ett konto med superanvändarrättigheter.
- När du är inloggad i phpMyadmin klickar du på
mysql-databasen i den vänstra kolumnen. - Klicka på fliken SQL.
- Typ eller klistra in i rutan för SQL-förfrågan:
SELECT User,Host FROM mysql.user;för att lista alla MySQL-användare i databasen. - Klicka på Go för att köra frågan.

Du bör nu se en lista över alla MySQL-användare och deras motsvarande värdar.
För att ändra värdvärdet för en MySQl-användare:
- Dubbelklicka på värdfältet bredvid den användare du vill ändra (i rött nedan).
- Typ
%för att låta vem som helst logga in på den här användaren var som helst. Du kan också ändra detta till en fjärr-IP för bättre säkerhet. - Tryck
ENTERpå tangentbordet för att spara ändringarna.

Du är inte klar än. Du måste nu spola MySQL-privilegier.
- Klicka på fliken SQL igen
- Typ eller klistra in i rutan för SQL-frågan:
FLUSH PRIVILEGES; - Klicka på Gå för att köra frågan.

Du bör nu kunna logga in på distans.




5.00 (2 röster)
Håll mig underrättad om det här hjälpte. Följ mig på Twitter, Facebook och YouTube, eller 🍊 köp mig en smoothie.
p.s. Jag ökade mina AdSense-intäkter med 200 % med hjälp av AI 🤖. Läs min recension av Ezoic för att ta reda på hur.