1.7. 查詢用戶密碼:mysql
查詢用戶密碼命令:mysql> select host,user,authentication_string from mysql.user;sql
host: 容許用戶登陸的ip‘位置'%表示能夠遠程;數據庫
user:當前數據庫的用戶名;ide
authentication_string: 用戶密碼(後面有提到此字段);函數
1.8. 設置(或修改)root用戶密碼:加密
默認root密碼爲空的話 ,下面使用navicat就沒法鏈接,因此咱們須要修改root的密碼。spa
這是很關鍵的一步。此處踩過N多坑,後來查閱不少才知道在mysql 5.7.9之後廢棄了password字段和password()函數;authentication_string:字段表示用戶密碼。.net
下面直接演示正確修改root密碼的步驟:插件
1、若是當前root用戶authentication_string字段下有內容,先將其設置爲空,不然直接進行二步驟。code
use mysql; update user set authentication_string='' where user='root'
2、使用ALTER修改root用戶密碼,方法爲 ALTER user 'root'@'localhost' IDENTIFIED BY '新密碼'。以下:
ALTER user 'root'@'localhost' IDENTIFIED BY 'Cliu123#'
此處有兩點須要注意:
一、不須要flush privileges來刷新權限。
二、密碼要包含大寫字母,小寫字母,數字,特殊符號。
修改爲功; 從新使用用戶名密碼登陸便可;
注意: 必定不要採起以下形式該密碼:
use mysql; update user set authentication_string="newpassword" where user="root";
這樣會給user表中root用戶的authentication_string字段下設置了newpassword值;
當再使用ALTER USER 'root'@'localhost' IDENTIFITED BY 'newpassword'
時會報錯的;
由於authentication_string字段下只能是mysql加密後的41位字符串密碼;其餘的會報格式錯誤;
*THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE
至此,安裝mysql和修改root密碼告一段落。
開始navicat for mysql篇。
帳號密碼都正確,鏈接報錯1251。OK 咱們先來看看這個改動:
在MySQL 8.04前,執行:SET PASSWORD=PASSWORD('[新密碼]');可是MySQL8.0.4開始,這樣默認是不行的。由於以前,MySQL的密碼認證插件是「mysql_native_password」,而如今使用的是「caching_sha2_password」。
so,咱們這裏須要再次修改一次root密碼。
先登陸進入mysql環境:執行下面三個命令。(記得帶上分號)
use mysql; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼'; FLUSH PRIVILEGES;
其餘刪除用戶,添加用戶
delete from user where user='jack'and host='localhost'; flush privileges; create user 'jack'@'localhost' identified by 'ddd';
修改遠程鏈接:
update user set host='%' where user='root'; flush privileges;
轉 : https://www.jb51.net/article/142025.htm