1. 程式人生 > >mysql8 安裝後登陸2059 顯示亂碼

mysql8 安裝後登陸2059 顯示亂碼

 下載了新的 mysql 卻發現登陸不上:

網上索羅一番 有的說  cmd 命令下 去安裝目錄下 進入 bin\ 

然後mysql -uroot -pxxx  登陸 然而我的比較特殊 在命令列裡依然出現了 上述錯誤, 登陸不進去

 

我的解決辦法一:

在這裡 進入終端進入 cmd    進行登陸

: 登陸成功 然後

登入後執行:

use mysql;

select host, user, plugin from user;

列印:

+-----------+------------------+-----------------------+
| host | user | plugin |
+-----------+------------------+-----------------------+
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session | caching_sha2_password |
| localhost | mysql.sys | caching_sha2_password |
| localhost | root | caching_sha2_password |
+-----------+------------------+-----------------------+
4 rows in set (0.00 sec)

發現新版MySQL都是預設用caching_sha2_password這個plugin來加密密碼了,HeidiSQL無法接入。現改成原生密碼的加密方式。

 

執行:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxx';  flush privileges;

(注: 這裡的localhost 是使用者這在本地登陸的, % 為 本地和遠端登陸都可以。要根據使用者的該屬性對應填寫 該值,比如:使用者是可以遠端登陸的 你填寫 localhost  後,執行該句就會報錯。)

就可以了。再執行上面的查詢語句,返回:

+-----------+------------------+-----------------------+
| host | user | plugin |
+-----------+------------------+-----------------------+
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session | caching_sha2_password |
| localhost | mysql.sys | caching_sha2_password |
| localhost | root | mysql_native_password |
+-----------+------------------+-----------------------+
4 rows in set (0.00 sec)

可知,已經改mysql_native_password外掛了。

 

辦法二:

修改 mysql的配置檔案  my.ini 初始化檔案中,在[mysqld] 下邊 新增 skip grant tables 圖下圖:

Cmd  輸入 mysql -uroot -p     回車

提示讓你輸入密碼  這個時候  直接回車就可以直接登陸上了

然後和一一樣執行: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxx';  flush privileges;   更改密碼儲存方式(不用最新的 外掛)

 

兩種方法的根本 目的 都是先登入上去, 然後 在修改 密碼方式。

然而 修改密碼的儲存方式 除了執行上述的語句以外 也可以在 navicate 裡邊圖形介面上修改其他使用者的該屬性。(前提是先用root 登陸上以後)

如下圖示:一目瞭然不過多贅述(navicat版本12)