日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL 8.x 修改root用户密码/修改密码/重置密码/忘记密码(为了避免掉坑,值得收藏)

發布時間:2023/12/3 数据库 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL 8.x 修改root用户密码/修改密码/重置密码/忘记密码(为了避免掉坑,值得收藏) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

操作系統:CentOS Linux release 8.2.2004 (Core)
MySQL版本:mysql Ver 8.0.26 for Linux on x86_64 (Source distribution)

忘記 root 用戶的密碼,然后我以無需“權限驗證”的方式啟動 MySQL 服務器(具體方法參考這里),接著我登錄 MySQL,然后輸入下面的命令修改 root 用戶的密碼:

update user set authentication_string=password('123456') where user='root'; # 或者 set password for 'root'@'localhost' = password('123456');

結果報錯:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('123456') WHERE User='root'' at line 1

報錯原因:MySQL 8.0 不支持 password() 函數。

在 MySQL 8.0 中正確的修改用戶密碼的命令如下:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

或者

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

結果還是報錯:

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

原因:你沒有刷新權限,你需要執行 flush privileges 就不會報錯了。

接著繼續執行修改密碼的命令,又報錯了:

ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'

解決辦法:
從 mysql.user 表中刪除用戶 root@localhost,然后刷新權限 FLUSH PRIVILEGES,再新建用戶 root@localhost 就不會有這個問題了。

刪除用戶、創建用戶的命令:

delete from user where user='root' and host='localhost'; # 刷新權限 flush privileges; # 創建用戶 create user 'root'@'localhost' identified by '123456'; # 給用戶授權 GRANT ALL PRIVILEGES ON *.* TO 'root'@localhost WITH GRANT OPTION;

你也可以使用 drop 語句刪除用戶,該語句有個好處,會自動刷新權限,所以刪除后,可以直接創建用戶。

drop user 'root'@'localhost';

糾正下:
修改用戶密碼,沒有必要先刪除用戶再創建用戶。其實在 MySQL 8.x 中無法直接修改用戶的密碼是因為字段 authentication_string 有值,所以無法直接修改,我們可以先將要修改密碼的用戶的字段 authentication_string 置為空,再設置新的密碼,沒有必要刪除該用戶。

update user set authentication_string='' where user='root';--將字段authentication_string置為空 ALTER user 'root'@'localhost' IDENTIFIED BY '123456';--修改密碼為123456

總結

以上是生活随笔為你收集整理的MySQL 8.x 修改root用户密码/修改密码/重置密码/忘记密码(为了避免掉坑,值得收藏)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。