MySQL Error 1045 krijg je meestal als je via WordPress bij je MySQL database probeert te komen. Denkt de server dat je niet bevoegd bent om die actie uit te voeren, dan wordt het verzoek geweigerd. Misschien gebruik je bijvoorbeeld het verkeerde wachtwoord, of heb je niet de juiste rechten.

Gelukkig is MySQL Error 1045 op allerlei manieren op te lossen. Je kunt bijvoorbeeld je wachtwoord opnieuw instellen, de gebruikersrechten controleren en checken op welke poort MySQL luistert.

In dit artikel bespreken we een aantal veelvoorkomende oorzaken van MySQL Error 1045 en laten we je vier manieren zien om hem op te lossen. Aan de slag!

Wat is MySQL Error 1045?

Deze fout komt in verschillende vormen voor. In dit artikel noemen we hem steeds MySQL Error 1045, maar je kunt hem ook tegenkomen als “Error 1045 (28000) access denied for user ‘username’@’hostname’”:

Een voorbeeld van MySQL Error 1045
MySQL Error 1045

Je kunt MySQL Error 1045 tegenkomen als je via WordPress bij de MySQL database probeert te komen. MySQL is een SQL-databasesysteem (Structured Query Language) waarmee je content op een WordPress website toevoegt, opvraagt en beheert.

Andere populaire databasesystemen die SQL gebruiken, zijn PostgreSQL en SQL Server, en daarnaast SQLite en MariaDB.

Achter de WordPress sites bij Kinsta draait MariaDB, een één-op-één vervanger van MySQL. Alles wat over “Error 1045” en MySQL geldt, geldt dus ook voor MariaDB.

Zie je deze foutmelding, dan heb je geen toegang tot de database. Misschien gebruik je het verkeerde wachtwoord of de verkeerde gebruikersnaam, of heb je onvoldoende rechten.

Wat zijn de oorzaken van MySQL Error 1045?

Dit zijn de belangrijkste oorzaken van MySQL Error 1045:

  • Onvoldoende rechten: je krijgt geen toegang tot de MySQL database als je niet de benodigde WordPress rechten hebt.
  • Gebruiker bestaat niet: je krijgt deze foutmelding ook als je niet als gebruiker op de server bent geregistreerd. De database weet dan simpelweg niet dat je bestaat.
  • Verkeerde inloggegevens: de oorzaak kan zo simpel zijn als een verkeerd wachtwoord en een verkeerde gebruikersnaam. Dat gebeurt vaak als je bij meerdere hosts zit, omdat je je wachtwoorden dan makkelijk door elkaar haalt.
  • Verkeerde host: geef je niet aan met welke host je verbinding wilt maken, dan probeert MySQL verbinding te maken met localhost. Terwijl je misschien juist met een andere host of poort wilt verbinden.
  • Speciale tekens en Bash: Bash kan speciale tekens in het wachtwoord interpreteren. Dat voorkom je door het wachtwoord tussen enkele aanhalingstekens te zetten.
  • Geen SSL: voor toegang tot de database is misschien Secure Sockets Layer (SSL) vereist, terwijl je geen geldig SSL-certificaat hebt.

Weet je wat de oorzaak van MySQL Error 1045 is, dan weet je ook welke oplossing je nodig hebt. Daarna ben je van de foutmelding af en kun je weer verder.

MySQL Error 1045 oplossen (4 methoden)

Nu je wat meer weet over MySQL Error 1045, bekijken we vier eenvoudige manieren om hem op te lossen.

1. Controleren of de gebruiker de benodigde rechten heeft

Inloggegevens en toegangsrechten van gebruikers staan in de systeemdatabase mysql, en dan specifiek in de tabellen user en db. Een van de belangrijkste oorzaken van MySQL Error 1045 is dat de gebruikersnaam in je WordPress configuratie niet de rechten heeft om bij de database van het CMS in MySQL te komen.

Heb je via de command-line van je server toegang tot MySQL (op de machine zelf of via SSH), dan kun je de benodigde rechten toekennen door als rootgebruiker in te loggen bij MySQL:

mysql -u root -p

Heb je het wachtwoord van deze superuser ingevoerd en ben je ingelogd, dan kun je met het commando GRANT alle rechten toekennen die een WordPress database waarschijnlijk nodig heeft. Met de gebruikersnaam “wp-admin” en een WordPress database “companydb” op “localhost” als voorbeeld ziet het commando er zo uit:

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON companydb.* TO 'wp-admin'@'localhost';

Bij veel hostingbedrijven kun je de gebruikersrechten ook controleren via phpMyAdmin.

Bij Kinsta heb je in phpMyAdmin geen roottoegang tot MariaDB, maar de inloggegevens die je WordPress configuratie nodig heeft, vind je altijd in het MyKinsta dashboard.

2. De juiste gebruikersnaam en het juiste wachtwoord gebruiken

Het klinkt misschien simpel, maar soms ontstaat MySQL Error 1045 doordat je verkeerde inloggegevens gebruikt. Gelukkig kun je die controleren in het bestand wp-config.php.

Dat bestand vind je door in te loggen op het controlepaneel van je host en een bestandsbeheerder te openen. Of je maakt via SFTP verbinding met je site.

Zoek dan eerst de hoofdmap van je site op, die meestal public_html heet. Daarin vind je het bestand wp-config.php:

Het bestand wp-config.php zoeken met een FTP-client
Het bestand wp-config.php zoeken.

Open het bestand en controleer of DB_USER en DB_PASSWORD de juiste waarden hebben (meestal ingesteld toen WordPress werd geïnstalleerd).

Weet je het wachtwoord niet meer en gebruikt je host cPanel, ga dan naar Database en klik op MySQL.

Ben je klant bij Kinsta, dan vind je de inloggegevens voor de database in MyKinsta. Ga naar Sites > sitenaam om op de pagina Info te komen en scrol omlaag naar de sectie Databasetoegang:

Screenshot van de kaart Databasetoegang in MyKinsta.
phpMyAdmin en de opties voor databasetoegang in MyKinsta.

De gebruikersnaam en het wachtwoord kopieer je zo uit die velden in MyKinsta.

3. Je wachtwoord opnieuw instellen

Weet je het wachtwoord van de database niet meer, dan kun je het resetten. Zo krijg je weer toegang tot MySQL en verdwijnt de foutmelding.

Heb je via de command-line toegang tot MySQL, dan kun je inloggen als rootgebruiker en het wachtwoord van de WordPress databasegebruikers zo aanpassen:

ALTER USER 'wp-admin'@'localhost' IDENTIFIED BY 'NewStrongPassword';

Met dit commando stel je een nieuw wachtwoord in voor de gebruiker wp-admin.

4. Controleren of de MySQL server op de juiste poort luistert

Een andere snelle oplossing voor MySQL Error 1045 is controleren of de server op de juiste poort luistert. Kijk wel eerst even of MySQL überhaupt draait.

De serverstatus controleer je met dit commando:

systemctl status mysql

Draait de server niet, start hem dan met dit commando:

systemctl start mysql

De standaardpoort van MySQL is 3306. Controleer dus of de server die poort gebruikt. Open daarvoor een terminal of opdrachtprompt op de server waarop MySQL is geïnstalleerd.

Maak daarna verbinding met de server met dit commando:

mysql -username -password

Typ nu het volgende commando om te zien op welke poort de MySQL server luistert:

SHOW VARIABLES LIKE ‘port’:

Je kunt de poortparameter hier of in het configuratiebestand wijzigen. Start daarna de MySQL server opnieuw op om de wijzigingen door te voeren.

Samenvatting

WordPress fouten kunnen frustrerend zijn en je flink in de weg zitten als je belangrijke wijzigingen aan je site wilt maken. MySQL Error 1045 is extra vervelend, omdat je dan niet meer bij je database kunt. Gelukkig is hij op te lossen.

Misschien moet je om te beginnen controleren of je de rechten hebt die nodig zijn voor toegang tot de database. Of je gebruikt simpelweg de verkeerde gebruikersnaam en het verkeerde wachtwoord. Je kunt ook je wachtwoord resetten of controleren of de MySQL server op de juiste poort luistert.

Bij Kinsta krijg je bij elk pakket eersteklas support, zodat je problemen snel oplost. En onze Database Hosting draait op 24 datacenters en 300 CDN-locaties (Content Delivery Network). Snel, veilig en schaalbaar dus. Bekijk onze pakketten!

Jeremy Holcombe Kinsta

Content & Marketing Editor bij Kinsta, WordPress Web Developer en Content Writer. Buiten alles wat met WordPress te maken heeft, geniet ik van het strand, golf en films. En verder heb ik last van alle problemen waar andere lange mensen ook tegenaan lopen ;).