sql >> Databasteknik >  >> RDS >> Mysql

Det går inte att komma åt MySql root-användare, även efter att ha ställt in lösenordet via felsäkert läge i linux-terminalen

Gå in som tidigare i steg 2, det vill säga starta om mysql-demonen i felsäkert läge.

Ge kommandot

select user,host,password from mysql.user where user='root';

klipp ut och klistra in utdata i en textredigerare för jämförelse (av de hashade lösenordskolumnvärdena) före och efter följande.

Lägg märke till host för varje rad kolumn. I följande exempel antar jag att jag har två rader. En rad har % som värd har nästa localhost

För varje rad som hade en host variation kommer du att utfärda ett kommando. Så i mitt exempel ovan skulle jag utfärda 2 kommandon totalt, till exempel:

SET PASSWORD FOR 'root'@'%' = PASSWORD('MyNewPassword');
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');

kör

select user,host,password from mysql.user where user='root';

klipp ut och klistra in det i textredigeraren. Lägg märke till ändringen av lösenordshasharna.

Stäng av demonen från felsäkert läge och starta om normalt.

Försök att logga in som root med MyNewPassword

Här är några länkar. Den för STÄLL IN LÖSENORD-syntax , och ett ofta nästa steg för GRANT-syntax .

För den här frågans snäva omfattning, det vill säga att logga in, skulle bidragen inte vara nödvändiga. Men utan ordentliga anslag till databaser skulle man vara i sandlåda, inte kunna göra mycket annat än enkla kommandon som select now();

Jag menar inte att din root-användare inte har privilegier när lösenordet har ändrats. Bidragen är nödvändiga för att normala användare ska vara säkra.




  1. Hur man får alla distinkta kombinationer av 2 kolumner i MySQL

  2. SQL Server 2014 inkrementell statistik

  3. Använda MySQL C API - kontrollera framgången för att infoga rader med hjälp av förberedda satser

  4. hur man använder kontrollbegränsning i Oracle