Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Ubuntu][MariaDB] root wachtwoord reset

Pagina: 1
Acties:

Vraag


  • Supremecy
  • Registratie: Oktober 2013
  • Laatst online: 16-08 18:38
Geen idee of dit topic op de juiste plaats staat maar aangezien het een Linux server betreft.

mysql Ver 15.1 Distrib 10.0.31-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-79-generic x86_64)

Ik heb een webserver geinstalleerd en daarbij MariaDB als database server.
Nu wilde ik daarop inloggen maar krijg ik de melding dat mijn wachtwoord incorrect is.

Ik heb dus opgezocht hoe dit te resetten, maar wanneer ik dit probeer door het volgende commando uit te voeren nadat ik de server heb gestopt:

sudo mysqld_safe --skip-grant-tables --skip-networking &

vervolgens kom ik in de database server precies zoals beschreven echter wanneer ik het wachtwoord probeer te wijzigen met:

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

Krijg ik allereerst de melding dat de query goed is, maar ook dat er geen rijen zijn aangepast en dat er 1 waarschuwing is.
En daaronder de melding dat ik anoniem ben ingelogd en dus geen rechten heb om wachtwoorden te wijzigen.

Zijn er andere commando's of manieren om het wachtwoord aan te passen?

Indien dit niet het geval is kan ik dan de database server deinstalleren en opnieuw installeren om alsnog het wachtwoord te wijzigen?
Er is op dit moment 1 applicatie die gebruik maakt van de database server en van die database heb ik reeds een backup gemaakt. Ik neem aan dat ik die terug kan zetten en de bijbehorende gebruiker vervolgens ook weer aan kan maken waarna de applicatie weer normaal zal functioneren.

Alvast bedankt voor alle antwoorden/adviezen.

Beste antwoord (via Supremecy op 04-11-2017 01:08)


  • Thralas
  • Registratie: December 2002
  • Laatst online: 11:00
Supremecy schreef op vrijdag 3 november 2017 @ 20:50:
Ook kan ik inloggen als ik sudo mysql doe.
Ik weet niet welke gebruiker er dan ingelogd wordt maar er komt geen wachtwoord aan te pas.
En volgens mij door het ontbreken van -u ook geen gebruiker.
Volgens mij zie je hier gedrag dat afkomstig is van auth_socket. Zie Change user password in MySQL 5.7 with “plugin: auth_socket”

Dat zou ook verklaren waarom je het rootwachtwoord niet kunt zetten.

Echter, dan zou je wel een werkende rootshell moeten hebben als je als root OS user naar mysql connect...

Alle reacties


  • mamorunl
  • Registratie: Februari 2015
  • Laatst online: 04:22
Je kunt altijd direct de user updaten: Update `mysql`.`user` set password=....

  • Supremecy
  • Registratie: Oktober 2013
  • Laatst online: 16-08 18:38
Ga ik dan niet tegen hetzelfde probleem aanlopen met het punt dat ik als anonieme gebruiker geen wachtwoorden mag wijzigen?

Ik log op dat moment overigens in met:

mysql -u root

Ook kan ik inloggen als ik sudo mysql doe.
Ik weet niet welke gebruiker er dan ingelogd wordt maar er komt geen wachtwoord aan te pas.
En volgens mij door het ontbreken van -u ook geen gebruiker.

  • Hero of Time
  • Registratie: Oktober 2004
  • Nu online

Hero of Time

Moderator LNX

There is only one Legend

Waarop heb je gezocht en wat was het resultaat wat je volgde? Andere resultaten nog geprobeerd?

Als je trouwens geen gebruiker opgeeft wordt de gebruiker geprobeerd waarmee je bent ingelogd. In geval je root bent, of sudo gebruikt, wordt de gebruiker root gebruikt voor de database.

Dan nog als laatste: hoewel je Linux draait, is MariaDB toch nog steeds Server Software, dus ik zet dit topic even die kant op.

Commandline FTW | Tweakt met mate


  • Supremecy
  • Registratie: Oktober 2013
  • Laatst online: 16-08 18:38
@Hero of Time Ik heb gezocht op: Linux mariadb root password reset
Meerdere pagina's die eigenlijk allemaal hetzelfde antwoord geven.

- Stop de database server
- Start deze opnieuw met het genoemde commando
- Voer de query uit om het wachtwoord te wijzigen.
- Stop de server wederom en herstart deze op de normale manier

Helaas blijkt dit bij mij niet het gewenste resultaat te geven en krijg ik dus de melding dat ik als anonieme gebruiker ingelogd ben en niet de rechten heb om wachtwoorden te wijzigen.

Vandaar ook dat ik ondertussen zelfs zit te denken aan het verwijderen van Mariadb en deze te herinstalleren.
Aangezien ik dit liever voorkom en niet zeker ben van de eventuele gevolgen hiervan dit topic.

Acties:
  • Beste antwoord

  • Thralas
  • Registratie: December 2002
  • Laatst online: 11:00
Supremecy schreef op vrijdag 3 november 2017 @ 20:50:
Ook kan ik inloggen als ik sudo mysql doe.
Ik weet niet welke gebruiker er dan ingelogd wordt maar er komt geen wachtwoord aan te pas.
En volgens mij door het ontbreken van -u ook geen gebruiker.
Volgens mij zie je hier gedrag dat afkomstig is van auth_socket. Zie Change user password in MySQL 5.7 with “plugin: auth_socket”

Dat zou ook verklaren waarom je het rootwachtwoord niet kunt zetten.

Echter, dan zou je wel een werkende rootshell moeten hebben als je als root OS user naar mysql connect...

  • Supremecy
  • Registratie: Oktober 2013
  • Laatst online: 16-08 18:38
Ik kan in ieder geval niets wijzigen als ik met sudo mysql inlog.
Verder zou het inderdaad kunnen, maar hoe wijzig ik dan het wachtwoord zodat ik met phpmyadmin nog iets kan?
Aangezien ik die auth_socket niet kan aanspreken met phpmyadmin.

Onderaan zie ik de volgende query staan:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test'

Moet ik 'test' dan zien als het nieuwe wachtwoord of hoe zit dit precies in elkaar?

  • Hero of Time
  • Registratie: Oktober 2004
  • Nu online

Hero of Time

Moderator LNX

There is only one Legend

Ze hebben 't o.a. bij https://www.cyberciti.biz...-mysql-root-password.html over dezelfde procedure, alleen wordt --skip-networking niet gebruikt. Wellicht dat dat je fout is.

Commandline FTW | Tweakt met mate


  • Supremecy
  • Registratie: Oktober 2013
  • Laatst online: 16-08 18:38
Het --skip-networking zou puur en alleen een veiligheidsmaatregel moeten zijn aangezien er dan volledig geen controle plaats vindt op wachtwoord.
Oftewel iedereen zou via het netwerk met root acces op de database server kunnen komen.
Op zich wat overbodig voor wat ik er mee doe dus zal het eens zonder proberen.

  • Supremecy
  • Registratie: Oktober 2013
  • Laatst online: 16-08 18:38
@Thralas Ik heb even de stappen geprobeerd die verteld worden in je link.
Het lijkt te kloppen dat er gebruik wordt gemaakt van auth_socket.
Echter wanneer ik probeer om via:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test'

het wachtwoord te wijzigen krijg ik de volgende melding:

ALTER: command not found

het zelfde gebeurt als ik ALTER vervang door UPDATE of SET.

Wanneer ik een andere query gebruik die verder in de comments wordt genoemd:

UPDATE mysql.user SET authentication_string = PASSWORD(‘test’), plugin = ‘mysql_native_password’ WHERE User = ‘root’ AND Host = ‘localhost’;

Dan krijg ik de volgende melding:

ERROR 1054 (42S22): Unknown column '‘root’' in 'where clause'

[ Voor 32% gewijzigd door Supremecy op 04-11-2017 00:39 ]


  • GlowMouse
  • Registratie: November 2002
  • Niet online
Doe eens SELECT user,host FROM mysql.user om te zien of er wel een root@localhost user bestaat. Anders moet je een nieuwe user aanmaken ipv een bestaande user bijwerken.

[ Voor 3% gewijzigd door GlowMouse op 04-11-2017 00:40 ]


  • Supremecy
  • Registratie: Oktober 2013
  • Laatst online: 16-08 18:38
Ik krijg alleen een -> te zien als reactie op die query.
Dat is op zich al heel vreemd aangezien ik weet dat er tenminste 1 gebruiker bestaat.
Ik kan met die gebruiker ook inloggen op phpmyadmin.
Echter heeft deze gebruiker alleen rechten op zijn eigen database en ik wil nu juist een nieuwe database aanmaken.

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 27-11 09:24
Supremecy schreef op zaterdag 4 november 2017 @ 00:34:
UPDATE mysql.user SET authentication_string = PASSWORD(‘test’), plugin = ‘mysql_native_password’ WHERE User = ‘root’ AND Host = ‘localhost’;

Dan krijg ik de volgende melding:

ERROR 1054 (42S22): Unknown column '‘root’' in 'where clause'
Je gebruikt de verkeerde quotes, waardoor hij "root" niet als value ziet maar als identification.
Dat s waarschijnlijk de hele tijd al je probleem.

Misschien verkeerde keyboard lay-out geconfigureerd. Probeer het eens met een doublequote (").

  • Supremecy
  • Registratie: Oktober 2013
  • Laatst online: 16-08 18:38
Ik zal het eens proberen maar het zijn query's die ik rechtstreeks van de betreffende website heb gekopieerd

update:
Het lijken inderdaad de quotes te zijn geweest, ik heb nu de melding:

Rows matched: 1 Changed: 1 Warnings: 0

Na het flushen van de privileges is het probleem opgelost ik heb weer root toegang.

@Thralas dank je voor de link, dit bleek uiteindelijk de oplossing te bevatten.
@frickY dank je voor het opmerken van de quotes, dit bleek de laatste fout te zijn.
Blijkbaar is het rechtstreeks kopieren niet altijd de oplossing.

[ Voor 77% gewijzigd door Supremecy op 04-11-2017 01:08 ]


  • Hero of Time
  • Registratie: Oktober 2004
  • Nu online

Hero of Time

Moderator LNX

There is only one Legend

En daar heb je dus je probleem. Voor commando's moet je NOOIT maar dan ook NOOIT zomaar copy/paste toepassen. Juist vanwege quote fuckups. Genoeg sites die een ander soort quote erop nahouden en dat werkt dan gewoon niet. Visueel lijkt het gelijk, maar dat is het dus niet. Kijk maar eens goed naar hoe MS Word quotes verandert. Als je een query of wat dan ook op de command line zou uitvoeren intypt in Word en dat weer via copy/past op de CLI invult, krijg je met grote zekerheid een foutmelding.

En als je bij MySQL/MariaDB een prompt krijgt met '->', dan ben je de punt-comma vergeten aan het eind. ;) Kan je 'm alsnog intypen om de query af te maken.

Commandline FTW | Tweakt met mate


  • Supremecy
  • Registratie: Oktober 2013
  • Laatst online: 16-08 18:38
@Hero of Time dank je voor de tip, ik leer het nog wel een keer..
Ben tamelijk nieuw met databases.
Pagina: 1