Kiedy użyłem kodu, mysqld_safe --skip-grant-tables &
ale pojawia się błąd:
katalog mysqld_safe „/ var / run / mysqld” dla pliku gniazda UNIX nie istnieje.
$ systemctl stop mysql.service
$ ps -eaf|grep mysql
$ mysqld_safe --skip-grant-tables &
Rozwiązałem:
$ mkdir -p /var/run/mysqld
$ chown mysql:mysql /var/run/mysqld
Teraz używam tego samego kodu mysqld_safe --skip-grant-tables &
i otrzymuję
mysqld_safe Uruchamianie demona mysqld z bazami danych z / var / lib / mysql
Jeśli $ mysql -u root
użyję, dostanę:
Wersja serwera: 5.7.18-0ubuntu0.16.04.1 (Ubuntu)
Prawa autorskie (c) 2000, 2017, Oracle i / lub podmioty stowarzyszone. Wszelkie prawa zastrzeżone.
Oracle jest zastrzeżonym znakiem towarowym firmy Oracle Corporation i / lub jej spółek zależnych. Inne nazwy mogą być znakami towarowymi ich właścicieli.
Wpisz „help;” lub „\ h” w celu uzyskania pomocy. Wpisz „\ c”, aby wyczyścić bieżącą instrukcję wprowadzania.
mysql>
Teraz czas na zmianę hasła:
mysql> use mysql
mysql> describe user;
Odczytywanie informacji o tabeli w celu uzupełnienia nazw tabel i kolumn Możesz wyłączyć tę funkcję, aby uzyskać szybsze uruchomienie z -A
Baza danych zmieniona
mysql> FLUSH PRIVILEGES;
mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('newpwd');
lub Jeśli masz konto root mysql, które może łączyć się z dowolnego miejsca, powinieneś również:
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
Metoda alternatywna:
USE mysql
UPDATE user SET Password = PASSWORD('newpwd')
WHERE Host = 'localhost' AND User = 'root';
A jeśli masz konto root, które może uzyskiwać dostęp z dowolnego miejsca:
USE mysql
UPDATE user SET Password = PASSWORD('newpwd')
WHERE Host = '%' AND User = 'root';`enter code here
teraz trzeba quit
z mysql i stop / start
FLUSH PRIVILEGES;
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
teraz ponownie `mysql -u root -p 'i użyj nowego hasła, aby uzyskać
mysql>