Toegang tot databases is een kerntaak voor serverbeheer en het onderhoud van webapplicaties.
MySQL is een van de meest gebruikte en krachtige databasebeheersystemen (DBMS). Als databasebeheerder beheer je bedrijfskritische informatie, en het MySQL root-wachtwoord speelt een cruciale rol bij het waarborgen van de beveiliging en integriteit van deze gegevens.
Het kan voorkomen dat je het MySQL root-wachtwoord verliest of vergeet. Dit kan om verschillende redenen gebeuren, van onvoorziene omstandigheden tot teamwisselingen of eenvoudige menselijke fouten. In zulke gevallen is het essentieel om te weten hoe je het root-wachtwoord reset en opnieuw toegang krijgt tot de database.
In dit artikel presenteren we methoden en tools om je te helpen het MySQL root-wachtwoord te resetten en de volledige controle over je database te herstellen. We behandelen verschillende benaderingen, van het gebruik van officiële MySQL-tools zoals mysqladmin en mysqld_safe tot het bewerken van configuratiebestanden en het doorvoeren van systeemwijzigingen.
We bespreken ook belangrijke voorzorgsmaatregelen om je database te beveiligen en te voorkomen dat het root-wachtwoord in de toekomst verloren gaat. Deze omvatten het gebruik van sterke wachtwoorden, het beperken van databasetoegang tot alleen noodzakelijke gebruikers en het regelmatig maken van back-ups om risico’s te minimaliseren.
Als je dus het MySQL root-wachtwoord moet resetten, vind je hieronder gedetailleerde instructies en aanbevelingen om opnieuw toegang te krijgen en het beheer van je MySQL-database te hervatten.
MySQL gebruikt geen PAM en het SSH-wachtwoord werkt niet. Het root-wachtwoord wordt ingesteld tijdens de installatie van de databaseserver in de fase waarin de privilegetabellen worden aangemaakt.
Als je na een inlogpoging in plaats van een begroeting de foutmelding ERROR 1045: Access denied for user 'root'@'localhost' ontvangt, moet je het root-wachtwoord resetten.
Om het root-wachtwoord in MySQL 8 te resetten, moet je een eenvoudige procedure volgen. Deze methode is even geschikt voor MySQL en MariaDB, aangezien ze volledig compatibel zijn en dezelfde commando’s gebruiken.
In Ubuntu kun je het MySQL root-wachtwoord resetten met dezelfde methoden als in Debian. Voor CentOS 7 kan er een klein verschil zijn, dat we in de betreffende sectie hieronder zullen vermelden.
Als je ook gebruikersaccounts opschoont, bekijk dan How to Properly Delete a MySQL User. Dit artikel behandelt het controleren en intrekken van rechten en het gebruik van het DROP USER-commando, waarmee je onnodige toegang kunt verwijderen zodra de root-rechten zijn hersteld.
Dit is een vrij gebruikelijke methode vanwege de eenvoud. Hieronder volgt een stapsgewijs plan voor deze handeling:
service mysqld stop
mysqld --skip-grant-tables&
Het ampersand aan het einde maakt het mogelijk om de service op de achtergrond te draaien, zodat deze geen apart terminalvenster bezet.
Aangezien de privilegetabellen niet zijn geladen, is het niet nodig om een wachtwoord in te voeren:
mysql -u root
Elke opdracht aan de database moet eindigen met een puntkomma. Als de query niet is voltooid, wacht MySQL op de voortzetting van de opdracht. Je kunt eenvoudig een puntkomma toevoegen als deze in de nieuwe regel is vergeten.
FLUSH PRIVILEGES;
De respons zou moeten zijn: Query OK, 0 rows affected.
Om een nieuw root-wachtwoord in MySQL in te stellen, gebruik je in Ubuntu en Debian:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'PASSWORD';
Als deze query niet werkt, probeer dan:
UPDATE `mysql`.`user` SET `password`=password('PASSWORD') WHERE `user`='root';
Of:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('PASSWORD');
Op CentOS 7 kun je het MySQL root-wachtwoord resetten met het commando:
UPDATE `mysql`.`user` SET `authentication_string`=password('PASSWORD') WHERE `user`='root';
Bij succesvolle uitvoering zie je de respons: Query OK, 0 rows affected.
Het wachtwoord kan zelfs een lege waarde hebben, maar in dat geval verlies je de mogelijkheid om op een andere manier dan via de opdrachtregel verbinding te maken met de server. De wachtwoordwijziging gaat onmiddellijk in na het uitvoeren van het commando. Je kunt dit bijvoorbeeld controleren door verbinding te maken via phpMyAdmin als er geen lege waarde is ingesteld.
quit;
De respons zou Bye moeten zijn en je keert terug naar de normale terminal.
service mysqld start
Het resetten van het MySQL-superuserwachtwoord op Windows is vergelijkbaar met de procedure voor het resetten van het root-wachtwoord op Linux-systemen. De verschillen zitten voornamelijk in het proces van het vinden en starten van de databaseservice zelf.
Hieronder vind je een stapsgewijze handleiding voor het resetten van het superuserwachtwoord van de database op Windows.
Er is een verschil afhankelijk van welke database is geïnstalleerd. Om dit te controleren, voer je uit:
Voor MySQL:
sc qc "mysql"
Voor MariaDB:
sc qc "mariadb"
Als de database niet is geïnstalleerd, zie je een melding dat de service niet bestaat. Anders zie je basisinformatie over MySQL of MariaDB.
Als de variabele %PATH% niet is ingesteld, ga dan naar de map met het uitvoerbare bestand van de databaseservice. Je kunt het pad vinden in de uitvoer van het sc qc-commando onder "BINARY_PATH_NAME". In ons geval is dit C:\localhost\mariadb\bin\.
cd C:\localhost\mariadb\bin\
Voor MySQL:
net stop mysql
Voor MariaDB:
net stop mariadb
Gebruik het start-commando. In tegenstelling tot Linux werkt het ampersand aan het einde van het commando niet in Windows, en wanneer de service start, worden er geen verdere commando’s toegestaan totdat de sessie wordt beëindigd (CTRL+C).
Je kunt hetzelfde commando gebruiken voor MySQL en MariaDB.
mysqld --skip-grant-tables
mysql -u root -p
Voer het lege wachtwoord in en je ziet de standaardbegroeting. Nu moet je commando’s invoeren voor de databaseserver.
FLUSH PRIVILEGES;
Zonder dit initiële commando kun je bij het wijzigen van het wachtwoord een foutmelding krijgen: "ERROR 1290: The MariaDB server is running with the --skip-grant-tables option so it cannot execute this statement."
ALTER USER 'root'@'localhost' IDENTIFIED BY 'PASSWORD';
Opmerking: als het commando niet werkt, probeer dan de opties uit Stap 5 van de instructies voor Linux-systemen.
Sluit het opdrachtpromptvenster met de tijdelijke databaseversie die draait of druk op CTRL+C.
Voor MySQL:
net start mysql
Voor MariaDB:
net start mariadb
Het resetten van het MySQL root-wachtwoord is een belangrijke vaardigheid voor databasebeheerders. In dit artikel hebben we verschillende methoden en tools besproken om het root-wachtwoord te resetten en de volledige controle over je beheerde MySQL-database terug te krijgen.
Ter afsluiting volgen hier enkele belangrijke punten met betrekking tot databasebeveiliging:
Gebruik complexe wachtwoorden die letters, cijfers en speciale tekens combineren en wijzig ze regelmatig.
Beperk databasetoegang tot alleen essentiële gebruikers om het risico op ongeautoriseerde toegang te minimaliseren.
Werk het MySQL-systeem regelmatig bij om bekende kwetsbaarheden te verhelpen en de nieuwste beveiligingspatches te ontvangen.
Maak regelmatig back-ups van de database. Dit is je verzekering in geval van gegevensverlies of systeemstoringen. Ontwikkel een back-upstrategie, bepaal de frequentie en methoden voor het maken van back-ups en controleer de herstelbaarheid om gegevensherstel te garanderen.
Vergeet niet hoe belangrijk training en voortdurende ontwikkeling zijn in databasebeheer. Blijf op de hoogte van de nieuwste trends, nieuwe functies en MySQL-tools. Gebruik educatieve bronnen, woon seminars en conferenties bij en communiceer met ervaren professionals in dit vakgebied. Door je kennis en vaardigheden voortdurend bij te werken, kun je de database effectief beheren en opkomende problemen oplossen.
Het resetten van het MySQL root-wachtwoord is een kritieke taak die aandacht en kennis vereist. Met de bestudeerde methoden en aanbevelingen kun je deze taak echter uitvoeren en de volledige controle over je MySQL-database terugkrijgen. Zorg voor beveiliging, maak back-ups en blijf leren, en je werk met MySQL zal succesvol en veilig zijn.