Quando ho usato il codice mysqld_safe --skip-grant-tables &
ma ho ricevuto l'errore:
La directory mysqld_safe '/ var / run / mysqld' per il file socket UNIX non esiste.
$ systemctl stop mysql.service
$ ps -eaf|grep mysql
$ mysqld_safe --skip-grant-tables &
Ho risolto:
$ mkdir -p /var/run/mysqld
$ chown mysql:mysql /var/run/mysqld
Ora uso lo stesso codice mysqld_safe --skip-grant-tables &
e ottengo
mysqld_safe Avvio del demone mysqld con database da / var / lib / mysql
Se uso $ mysql -u root
otterrò:
Versione server: 5.7.18-0ubuntu0.16.04.1 (Ubuntu)
Copyright (c) 2000, 2017, Oracle e / o sue affiliate. Tutti i diritti riservati.
Oracle è un marchio registrato di Oracle Corporation e / o delle sue affiliate. Gli altri nomi possono essere marchi dei rispettivi proprietari.
Digita "help;" o '\ h' per aiuto. Digita '\ c' per cancellare l'istruzione di input corrente.
mysql>
Ora è tempo di cambiare la password:
mysql> use mysql
mysql> describe user;
Lettura delle informazioni sulla tabella per il completamento dei nomi di tabelle e colonne È possibile disattivare questa funzione per ottenere un avvio più rapido con -A
Database modificato
mysql> FLUSH PRIVILEGES;
mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('newpwd');
oppure Se hai un account root mysql che può connettersi da qualsiasi luogo, dovresti anche fare:
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
Metodo alternativo:
USE mysql
UPDATE user SET Password = PASSWORD('newpwd')
WHERE Host = 'localhost' AND User = 'root';
E se hai un account root a cui puoi accedere da qualsiasi luogo:
USE mysql
UPDATE user SET Password = PASSWORD('newpwd')
WHERE Host = '%' AND User = 'root';`enter code here
ora è necessario quit
da mysql e stop / start
FLUSH PRIVILEGES;
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
ora di nuovo `mysql -u root -p 'e usa la nuova password per ottenere
mysql>