MySQL 8的連接方式與之前的版本有所不同,它引入了新的加密插件caching_sha2_password,而且默認(rèn)安裝時會將身份驗證插件設(shè)置為該插件。所以在連接MySQL 8之前,需要在應(yīng)用程序中進行一些更改以確保能夠成功連接到數(shù)據(jù)庫。
首先,需要使用正確的驅(qū)動程序,即 MySQL 的官方 JDBC 驅(qū)動程序。然后,在連接到數(shù)據(jù)庫時,需要指定使用的身份驗證插件,例如:
jdbc:mysql://localhost:3306/mydatabase?user=myusername&password=mypassword&useSSL=false&allowPublicKeyRetrieval=true&authenticationPlugins=com.mysql.cj.jdbc.authentication.MysqlNativePasswordPlugin,caching_sha2_password
在此示例中,使用了兩個身份驗證插件,分別是 MySQL 原生密碼插件和caching_sha2_password插件。這樣就能確保無論MySQL 8的身份驗證插件設(shè)置為何種方式,都能成功連接到數(shù)據(jù)庫。
如果在連接時不指定身份驗證插件,則會出現(xiàn)以下錯誤:
java.sql.SQLException: The server requested authentication method unknown to the client [caching_sha2_password]
通過指定正確的身份驗證插件,就可以有效避免這個問題。
總的來說,MySQL 8的連接方式變了,但是只要進行正確的設(shè)置,仍然可以順利地連接到數(shù)據(jù)庫。