1. 程式人生 > 資料庫 >mysql8.0修改root密碼

mysql8.0修改root密碼

  • 出現錯誤

    # mysql -u root -p 
    Enter password: 
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
    
  • mysql8 centos 修改root的密碼

-- 1 修改 /etc/my.cnf
-- 2 新增 skip-grant-tables  (跳過 登入驗證) 

在這裡插入圖片描述

-- 3 輸入
mysql -uroot mysql;
-- 4 修改密碼
use mysql;
-- 這是mysql5的命令 不可取!

-- update user set authenticate_string = password("密碼") where user="使用者名稱";
-- 限制為空
update user set authenticate_string = '' where user="root";

以上:首先:在mysql8.0以上的版本中 是沒有password這個欄位的。廢棄了mysql5中的 password

其次:使用的aithentication_string 欄位。

以上的目的是將root賬戶設定為不需要祕密登入。

-- 5 重新整理 儲存設定。
flush privileges
-- 6 退出
exit
-- 7 刪除 skip-grant-tables
-- 8 登入 直接回車就好了
mysql -uroot -p;

-- 9 修改密碼
use mysql;
ALTER user 'root'@'localhost' IDENTIFIED BY 'admin123'
-- 10 
exit;

以上的加密方式是 mysql_native_password
  • 檢視
mysql> select host ,user,authentication_string from  mysql.user  ;
+-----------+------------------+----------------------------------------------------------
| host      | user             | authentication_string                                     
+-----------+------------------+----------------------------------------------------------
| %         | admin            | *7CB4837EB74329105EE4568DDA74C67ED5CA2CD0                 
| localhost | root             | *B17FD343E758C86BECB196715EEF742400603C5E                 
+-----------+------------------+----------------------------------------------------------
9 rows in set (0.00 sec)
-- % 表示可以遠端連線
-- localhost 表示本地連線