Als ich den Code verwendet mysqld_safe --skip-grant-tables &
habe, erhalte ich aber den Fehler:
mysqld_safe Verzeichnis '/ var / run / mysqld' für UNIX-Socket-Datei existiert nicht.
$ systemctl stop mysql.service
$ ps -eaf|grep mysql
$ mysqld_safe --skip-grant-tables &
I löste:
$ mkdir -p /var/run/mysqld
$ chown mysql:mysql /var/run/mysqld
Jetzt benutze ich den gleichen Code mysqld_safe --skip-grant-tables &
und bekomme
mysqld_safe Starten des mysqld-Daemons mit Datenbanken aus / var / lib / mysql
Wenn ich benutze, $ mysql -u root
bekomme ich:
Serverversion: 5.7.18-0ubuntu0.16.04.1 (Ubuntu)
Copyright (c) 2000, 2017, Oracle und / oder verbundene Unternehmen. Alle Rechte vorbehalten.
Oracle ist eine eingetragene Marke der Oracle Corporation und / oder ihrer verbundenen Unternehmen. Andere Namen können Marken ihrer jeweiligen Eigentümer sein.
Geben Sie 'help' ein. oder '\ h' um Hilfe. Geben Sie '\ c' ein, um die aktuelle Eingabeanweisung zu löschen.
mysql>
Jetzt ist es Zeit, das Passwort zu ändern:
mysql> use mysql
mysql> describe user;
Lesen von Tabelleninformationen zum Vervollständigen von Tabellen- und Spaltennamen Sie können diese Funktion deaktivieren, um einen schnelleren Start mit -A zu erhalten
Datenbank geändert
mysql> FLUSH PRIVILEGES;
mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('newpwd');
oder Wenn Sie ein MySQL-Root-Konto haben, das von überall aus eine Verbindung herstellen kann, sollten Sie auch Folgendes tun:
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
Alternative Methode:
USE mysql
UPDATE user SET Password = PASSWORD('newpwd')
WHERE Host = 'localhost' AND User = 'root';
Und wenn Sie ein Root-Konto haben, auf das von überall aus zugegriffen werden kann:
USE mysql
UPDATE user SET Password = PASSWORD('newpwd')
WHERE Host = '%' AND User = 'root';`enter code here
Jetzt muss quit
von MySQL und Stop / Start
FLUSH PRIVILEGES;
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
jetzt nochmal `mysql -u root -p 'und benutze das neue passwort um zu bekommen
mysql>