この種のエラーの場合。管理者としてrootユーザーに新しいパスワードを設定する必要があります。次の手順に従います。
[root ~]# mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:NO)
-
実行中のmysqlのサービス/デーモンを停止します
[root ~]# service mysql stop mysql stop/waiting
-
次のオプションを使用して、権限なしでmysqlを起動します。このオプションは起動に使用され、MySQLの権限システムを使用しません。
[root ~]# mysqld_safe --skip-grant-tables &
この時点で、端末は停止しているように見えます 。それをそのままにして、次のステップに新しい端末を使用します。
-
mysqlコマンドプロンプトを入力します
[root ~]# mysql -u root mysql>
-
rootユーザーの権限設定を修正します;
mysql> use mysql; Database changed mysql> select * from user; Empty set (0.00 sec) mysql> truncate table user; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.01 sec) mysql> grant all privileges on *.* to [email protected] identified by 'YourNewPassword' with grant option; Query OK, 0 rows affected (0.01 sec)
*パスワードが不要な場合、または空のパスワードが必要な場合
mysql> grant all privileges on *.* to [email protected] identified by '' with grant option;
Query OK, 0 rows affected (0.01 sec)*
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
結果を確認します:
mysql> select host, user from user;
+-----------+------+
| host | user |
+-----------+------+
| localhost | root |
+-----------+------+
1 row in set (0.00 sec)
-
シェルを終了し、mysqlを通常モードで再起動します。
mysql> quit; [root ~]# kill -KILL [PID of mysqld_safe] [root ~]# kill -KILL [PID of mysqld] [root ~]# service mysql start
-
これで、設定したパスワードを使用してrootユーザーとして正常にログインできます
[root ~]# mysql -u root -pYourNewPassword mysql>