解決CentOS7,安裝MySQL,登錄時報錯:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor=YES)
,
或忘記密碼的問題
首先,修改MySQL的配置文件:vim /etc/mysql.cnf,添加上一句skip-grant-tables 這個配置,然後保存文件。
之後重啓服務
然後再次進入到終端當中,敲入 mysql -u root -p 命令然後回車,當需要輸入密碼時,直接按enter鍵,便可以不用密碼登錄到數據庫當中,也就是說不需要登陸密碼就可以進行登陸進去mysql。
之後修改默認密碼:
set password for root@host=password('你的密碼');
或者
set password for 'root'@'host'=password('MyNewPass4!');
過程中可以會報錯:
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
解決:
刷新一下權限表
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> set password for root@localhost = password('123456');
Query OK, 0 rows affected, 1 warning (0.00 sec)
然後在繼續修改默認密碼:
set password for root@host=password('你的密碼');
或者
set password for 'root'@'host'=password('MyNewPass4!');
但是之後可能還會報一個錯誤:
提示:命令修改mysql數據庫root用戶密碼提示ERROR 1133 (42000): Can't find any matching row in the user table錯誤
解決:
use mysql;
select Host,User from user;
將set password for ‘root’@‘host’=password('123456); 代碼中的host修改成localhost,與數據庫Host字段值一致
set password for 'root'@'localhost'=password('123456');
刷新
flush privileges;