いったんパスワード無しでログインできる状態にしてから、パスワードを再設定します。通常、ルートパスワードの再設定にはroot権限が必要です。
- /etc/my.cnfの項目[mysqld]にskip-grant-tablesを追加します。
[mysqld] ... skip-grant-tables ...
- 再起動すると、パスワード無しでログインできるようになります。
# service mysqld restart
- mysqladminでログインします。
# mysql -u root mysql
- rootのパスワードを変更
mysql> UPDATE mysql.user SET Password=PASSWORD('newpassword') WHERE User='root'; Query OK, 0 rows affected (0.00 sec) Rows matched: 1 Changed: 0 Warnings: 0
- 変更したパスワードを反映させます。
mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
- 最初に/etc/my.cnfに追加したskip-grant-tablesを削除してmysqlを再起動すると、元通りのパスワード認証が必要な状態で動作するようになります。