問題描述:
在開發過程中使用mysql5.7時,程序無法連接到數據庫。無論使用何種方式,都無法建立連接,提示連接超時或連接被拒絕。
問題分析:
經過排查,發現問題并非在程序中出現,而是mysql5.7配置的問題。mysql5.7默認采用加密方式進行連接,而程序中沒有進行加密方式的處理,導致連接失敗。
解決方案:
在mysql5.7配置文件中加入以下配置,允許使用非加密方式進行連接。
[mysqld]
skip-grant-tables
skip-networking=false
# 加入以下兩行
map=sha256
default_authentication_plugin=mysql_native_password
配置文件路徑及文件名:
配置文件路徑:/etc/mysql/mysql.conf.d/mysqld.cnf
配置文件名:mysqld.cnf
修改后的連接方式:
String url = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC";
String user = "root";
String password = "mypassword";
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn = DriverManager.getConnection(url, user, password);
修改完配置文件后,程序中也需要修改連接方式,加入useSSL=false參數。這樣程序就可以成功連接到mysql5.7數據庫了。
上一篇rgb值css中怎么寫
下一篇html5本地存儲源代碼