mysql8.0.11修改密碼及用navicat連接時出現1251

mysql的密碼忘記了,登陸被拒絕,需要修改密碼。

版本:mysql8.0.11

vim /etc/my.cnf 配置文件中加入skip-grant-table;

/etc/init.d/mysqld restart;

mysql -u root -p 1qaz@WSX 正常登陸;

查詢用戶密碼命令:mysql> select host,user,authentication_string from mysql.user;

    host: 允許用戶登錄的ip‘位置'%表示可以遠程;
    user:當前數據庫的用戶名;
    authentication_string: 用戶密碼(後面有提到此字段);

##修改root密碼的步驟:

如果當前root用戶authentication_string字段下有內容,先將其設置爲空後再修改密碼。

use mysql; 
update user set authentication_string='' where user='root';

ALTER user 'root'@'%' IDENTIFIED BY '1qaz@WSX';

此處有兩點需要注意:
    1、不需要flush privileges來刷新權限。
    2、密碼要包含大寫字母,小寫字母,數字,特殊符號。
    修改成功; 重新使用用戶名密碼登錄即可;

##mysql8 之前的版本中加密規則是mysql_native_password,而在mysql8之後,加密規則是caching_sha2_password,

解決問題方法把mysql用戶登錄密碼加密規則還原成mysql_native_password. 

ALTER USER 'root'@'%' IDENTIFIED BY '1qaz@WSX' PASSWORD EXPIRE NEVER;

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '1qaz@WSX';

FLUSH PRIVILEGES;

能正常登陸後註釋掉了skip-grant-table;

/etc/init.d/mysqld restart;

https://www.jb51.net/article/142025.htm

https://blog.csdn.net/qq_36068954/article/details/80175755

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章