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)