--skip-grant-tables
を使用してサーバーを実行すると、rootパスワードをリセットできます。 rootとして(またはsudoを使用して)以下を実行することにより、パスワードなしでログインします。
# service mysql stop
# mysqld_safe --skip-grant-tables &
$ mysql -u root
mysql> use mysql;
mysql> update user set authentication_string=PASSWORD("YOUR-NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit
# service mysql stop
# service mysql start
$ mysql -u root -p
これで、新しいパスワードを使用してrootとしてログインできるようになります。
/home/$USER/.mysql_history
でパスワードをリセットするクエリを見つけることもできます。 または/root/.mysql_history
パスワードをリセットしたユーザーの名前ですが、上記は常に機能します。
注:MySQL 5.7より前は、列はpassword
と呼ばれていました。 authentication_string
の代わりに 。上記の行を
mysql> update user set password=PASSWORD("YOUR-NEW-ROOT-PASSWORD") where User='root';