2023年3月24日 星期五

JAVA 連線 Mysql8 出現 Unknown initial character set index '255' received 排除方法

 在進行MYSQL 舊版本升級時,在升級後連線時發現出現 Unknown initial character set index '255' received 這個錯誤訊息,上網查了一下,原來是charset編碼的問題,可以透過mysql client參數的方式去調整連線的編碼方式,可以調整如下:


jdbc:mysql://xxx.xxx.xxx.xxx:3306/DB?useUnicode=true&characterEncoding=utf8


這樣就可以連線上了,除了這個charset的指定外,如要連Mysql8像還有useSSL參數也要指定,不然也是還是會再報出錯誤的

2023年3月23日 星期四

Java 連結 Mysql 8出現java.sql.SQLException: Unable to load authentication plugin 'caching_sha2_password'排除方式

 升級資料庫升級到mysql8後,用JAVA程式連資料庫時出現了

java.sql.SQLException: Unable to load authentication plugin 'caching_sha2_password'.

 的錯誤訊息

上網查了一下,

5.7版本是:default_authentication_plugin=mysql_native_password 8.x版本就是:default_authentication_plugin=caching_sha2_password

一般是要修改密碼加密規則。換回舊的加密方式但這種方式加密規則變舊的安全性應該會有所降低

所以最好的方式就是同時更新JDBC Driver,可到此連結下載 https://dev.mysql.com/downloads/connector/j/






取得最新的JDBC,即可正常連線。

2023年1月5日 星期四

Navicat Mysql 8出現1251- Client does not support authentication protocol 排除方式

 最近在升級系統,資料庫升級到mysql8後,用程式或第三方工具連資料庫時出現了

1251- Client does not support authentication protocol  

或 Unable to load authentication plugin 'caching_sha2_password' 的錯誤訊息

上網查了一下,發現mysql8之前的版本使用的密碼加密規則是mysql_native_password,但是在mysql8則是caching_sha2_password,所以需要修改密碼加密規則。

網路上的解法就是要連入改密碼規則,可以使用

输入use mysql和select user,host,plugin,authentication_string from user;  查看目前使用者的密碼加密規則,如要調整,請執行以下語法:

alter user 'root' @'localhost' identified with mysql_native_password by 'yourpassword';

但這種解法還是用舊有加密規則,所以如要用新版加密規則,你的第三方資料庫連線工具就要升級才行,像Navicat 升到最新就可以支援了