Glemt root-passordet til MariaDB på VPS?

Denne veiledningen gjelder Uniweb VPS med Ubuntu, der MariaDB er installert direkte på serveren og administreres med systemctl.

Du må ha SSH-tilgang til serveren og en bruker med root- eller sudo-rettigheter.

Veiledningen gjelder ikke nødvendigvis dersom databasen kjører i Docker, via et kontrollpanel som Plesk/cPanel, på webhotell eller på en administrert løsning.

Før du starter

Denne artikkelen gjelder root-brukeren i MariaDB. Root-brukeren har full tilgang til databaseserveren.

Dersom du har glemt passordet til en vanlig databasebruker, trenger du normalt ikke å tilbakestille root-passordet. Da kan du logge inn som administrator og endre passordet til den aktuelle databasebrukeren.

Vær oppmerksom på at deler av denne veiledningen krever at MariaDB stoppes og startes på nytt. Nettsider, applikasjoner og tjenester som bruker databasen kan derfor bli utilgjengelige mens arbeidet pågår.

Planlegg endringen til et tidspunkt med lav trafikk, og informer eventuelle andre brukere på forhånd.

Prøv dette først

På mange Ubuntu-baserte MariaDB-oppsett kan systemets root-bruker logge inn i MariaDB uten eget databasepassord.

Prøv derfor først:

sudo mariadb

Dersom du kommer inn i MariaDB-konsollen, trenger du ikke nødvendigvis å tilbakestille root-passordet. Du kan administrere databasen direkte derfra.

Dersom du bare ønsker å sette eller endre passord for root-brukeren, kan du prøve denne kommandoen inne i MariaDB-konsollen:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('sikkert_passord');

Bytt ut sikkert_passord med et sterkt og unikt passord.

Avslutt deretter MariaDB-konsollen:

EXIT;

For applikasjoner og nettsider bør du normalt bruke egne databasebrukere, ikke MariaDB-brukeren root.

Dersom sudo mariadb ikke fungerer, eller du ikke får satt nytt passord, kan du følge stegene nedenfor.

Sjekk MariaDB-versjonen

Kjør:

mariadb --version

På enkelte systemer fungerer også denne kommandoen:

mysql --version

Selv om kommandoen heter mysql, kan output fortsatt vise at serveren bruker MariaDB.

Stopp MariaDB

Stopp MariaDB-tjenesten:

sudo systemctl stop mariadb

Start MariaDB uten passordkontroll

For å kunne sette et nytt passord må MariaDB startes midlertidig uten de vanlige rettighetstabellene. Disse tabellene inneholder blant annet brukere, passord og tilganger.

Denne modusen skal kun brukes midlertidig. Mens den er aktiv, kan lokale brukere på serveren få tilgang uten passord. Derfor starter vi samtidig MariaDB uten nettverkstilgang.

Opprett en midlertidig konfigurasjonsfil:

sudo tee /etc/mysql/mariadb.conf.d/99-reset-root.cnf >/dev/null <<'EOF'
[mariadb]
skip-grant-tables
skip-networking
EOF

Start MariaDB igjen:

sudo systemctl start mariadb

Logg inn uten passord:

sudo mariadb -u root

Når du er inne i MariaDB-konsollen, kjør:

FLUSH PRIVILEGES;

Dette laster inn rettighetssystemet igjen, slik at du kan endre brukerkontoer.

Sett nytt root-passord

Kjør:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('sikkert_passord');

Bytt ut sikkert_passord med et sterkt og unikt passord.

På enkelte oppsett kan root-brukeren være satt opp med kun socket-basert innlogging. Dersom kommandoen over ikke fungerer, og du bevisst ønsker å endre root-brukeren til passordbasert innlogging, kan du bruke denne varianten:

ALTER USER 'root'@'localhost'
  IDENTIFIED VIA mysql_native_password USING PASSWORD('sikkert_passord');

Vær oppmerksom på at dette endrer hvordan root-brukeren autentiseres. Dersom sudo mariadb allerede fungerer, er det ofte bedre å beholde socket-basert innlogging og heller bruke egne databasebrukere til nettsider og applikasjoner.

Avslutt MariaDB-konsollen:

EXIT;

Start MariaDB normalt igjen

Fjern den midlertidige konfigurasjonsfilen:

sudo rm /etc/mysql/mariadb.conf.d/99-reset-root.cnf

Start MariaDB på nytt:

sudo systemctl restart mariadb

Kontroller at tjenesten kjører:

sudo systemctl status mariadb

Test det nye passordet

Test passordbasert innlogging uten sudo:

mariadb -u root -p

Skriv inn det nye passordet når du blir bedt om det.

Merk at sudo mariadb fortsatt kan fungere uten passord dersom root-brukeren bruker socket-basert innlogging. For å teste selve passordet bør du derfor bruke kommandoen uten sudo.

Endre passord for en vanlig databasebruker

Dersom du ikke har glemt root-passordet, men passordet til en vanlig databasebruker, kan du endre dette etter at du har logget inn som administrator:

ALTER USER 'brukernavn'@'localhost' IDENTIFIED BY 'nytt_passord';

Bytt ut brukernavn og nytt_passord med riktig brukernavn og nytt passord.

Dersom brukeren ikke er knyttet til localhost, må du bruke riktig host-verdi for brukeren. Dette kan for eksempel være % eller et bestemt vertsnavn.

Oppsummering

Dersom du har glemt root-passordet til MariaDB på en Uniweb VPS, kan du som regel sette et nytt passord så lenge du har SSH-tilgang og root- eller sudo-rettigheter på serveren.

På Ubuntu-baserte MariaDB-oppsett er det vanlig at root-brukeren kan logge inn via systemets root-bruker uten eget databasepassord. Derfor bør du alltid teste sudo mariadb først.

Trenger du hjelp, kan du kontakte Uniweb kundeservice.

Var denne artikkelen nyttig?

Fant du ikke det du trengte?

Chat med oss

Trenger du hjelp? Chat med oss direkte hverdager mellom kl. 8:30-16:30

Snakk med oss

Du kan ringe oss direkte på hverdager mellom kl. 09:00-15:00