'ERROR 1045 (28000): Access denied for user 'naam'@'localhost' (using password: YES)' betekent een verkeerd wachtwoord, verkeerde host of ontbrekende rechten. Zo controleer je alle drie.
In MySQL en MariaDB bestaat een gebruiker uit een naam én een host: 'shop'@'localhost' is een andere gebruiker dan 'shop'@'%'. De melding Access denied for user 'shop'@'localhost' (using password: YES) zegt dus ook vanaf welke host je inlogt en of er een wachtwoord werd meegestuurd.
De oorzaak is bijna altijd één van drie: het wachtwoord klopt niet, de gebruiker bestaat niet voor die host, of de gebruiker heeft geen rechten op deze database (dan zie je vaak fout 1044, Access denied … to database).
Menunamen kunnen per versie of toestel iets anders heten. Loop de stappen op volgorde af en stop zodra het werkt.
'using password: NO' betekent dat de applicatie helemaal geen wachtwoord meestuurt: dan is de configuratie niet goed ingelezen. Let ook op de host: localhost (via socket) of 127.0.0.1 (via TCP) kan uitmaken.
Log in als beheerder en bekijk de gebruiker en zijn rechten.
SELECT user, host FROM mysql.user WHERE user = 'shop';
SHOW GRANTS FOR 'shop'@'localhost';Werkt het wachtwoord niet, stel dan een nieuw in en zet het ook in de configuratie van de applicatie.
ALTER USER 'shop'@'localhost' IDENTIFIED BY 'een-lang-nieuw-wachtwoord';Geef de gebruiker alleen rechten op zijn eigen database.
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, DROP
ON winkel.* TO 'shop'@'localhost';Een wachtwoord met tekens als $, " of \ kan in een configuratiebestand of .env verkeerd worden ingelezen. Zet het tussen de juiste aanhalingstekens, of kies voor de test tijdelijk een wachtwoord met alleen letters en cijfers.
Kom je er met deze stappen niet uit, of wil je het liever niet zelf doen? We kijken online mee of komen langs. Hulp op afstand kost €20 per uur; komen we langs, dan is de prijs op aanvraag. Je weet vooraf waar je aan toe bent.
Schrijf kort wat er misgaat en wat je al hebt geprobeerd. Kies of we bellen, online meekijken of langskomen.
Vergelijk host, gebruikersnaam en wachtwoord in de configuratie van de site met wat je in phpMyAdmin gebruikt. Vaak is het een tikfout of een andere host.
Dat staat inloggen vanaf elke host toe. Doe dat alleen als het echt nodig is, en beperk de toegang dan met een firewall.
Dan klopt het inloggen, maar heeft de gebruiker geen rechten op deze database. Geef de rechten met GRANT.
Hulp nodig van een mens? Website-onderhoud · WordPress-support · Hosting en onderhoud · Alle oplossingen