連接服務器的數據庫連接不上&&註冊功能插入數據插入不上

1.navicat連接遠程數據庫

超實用!!!

2.

原因:本地mysql爲5.0版本,服務器安裝的是8.0版本——》更改驅動jar包,改爲8.0版本,並且修改dbutils的代碼


	private static String URL="jdbc:mysql://localhost:3306/10_10bluenet?useSSL=true&serverTimezone=GMT";
    	private static String USERNAME="root";
	private static String PASSWORD="123456";
	private static String DRIVER="com.mysql.cj.jdbc.Driver";
	

useSSL=true

serverTimezone=GMT

https://blog.csdn.net/BeiJiXingLv/article/details/80088099

擴展:借鑑:https://zhidao.baidu.com/question/649723508650932965.html

MySQL默認的數據通道是不加密的,在一些安全性要求特別高的場景下,我們需要配置MySQL端口爲SSL,使得數據通道加密處理,避免敏感信息泄漏和被篡改。
當然,啓用MySQL SSL之後,由於每個數據包都需要加密和解密,這個對MySQL的性能是有不小影響的,讀者們在使用的時候,要根據實際情況斟酌。

MySQL客戶端登錄服務器時候的密碼不是明文傳輸,有加密策略處理。

筆者是在 ubuntu12.04 系統上使用MySQL 5.5版本測試的,其他環境請讀者自行匹配。

配置MySQL服務器證書

編輯 /etc/mysql/my.cnf 文件
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem

把上面三行默認證書配置註釋打開,使用自己的證書。筆者就使用上次在搭建自己的CA服務 – OpenSSL CA 實戰文章中生成的證書
ssl-ca=/home/yunweipai/user_certs/ca_cert.cer
ssl-cert=/home/yunweipai/user_certs/web.cer
ssl-key=/home/yunweipai/user_certs/web_key_plain.pem

這裏需要注意的是,在ubuntu上,配置證書後如果不生效,參考這裏解決方法

注意上面配置的 web_key_plain.pem 文件,由於MySQL不支持加密後的私鑰,因此我們使用命令
openssl rsa -in web_key.pem -passin pass:Yunweipai@123 -out web_key_plain.pem

將私鑰解密。MySQL不支持私鑰加密的原因是從安全性角度考慮,因爲如果要用戶傳遞一個加密的私鑰,那麼必須要用戶傳密碼,那麼MySQL怎麼存儲這個密碼呢?這就引出了我們在密碼存儲和傳輸的安全建議裏面提到的一系列問題了。
所以MySQL爲了簡化實現,就不支持私鑰加密。

指定客戶端連接方式

MySQL服務端在對客戶端授權的時候,可以通過選項指定客戶端連接MySQL 服務器的SSL級別,參考MySQL賦權的 REQUIRE值:
ssl_option
SSL: 不認證客戶端,客戶端不需要提供證書
X509: 客戶端必須發送一個有效的X509證書
issuer: 客戶端的證書是否是服務器所配置的CA頒發的(在我們場景下是ca_cert.cer頒發的證書)
subject: 認證證書的subject(關於證書的subject在之前的文章有介紹)
cipher: 指定加密算法
這些選項可以疊加使用,如:X509|issuser

客戶端連接(SSL方式)

mysql 客戶端連接
mysql -u root -pChangeme_123 -P 3306 --ssl-ca=/home/yunweipai/user_certs/ca_cert.cer
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 36
Server version: 5.5.43-0ubuntu0.12.04.1 (Ubuntu)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> \s
--------------
mysql Ver 14.14 Distrib 5.5.43, for debian-linux-gnu (i686) using readline 6.2

Connection id: 36
Current database:
Current user: root@localhost
SSL: Cipher in use is DHE-RSA-AES256-SHA
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.5.43-0ubuntu0.12.04.1 (Ubuntu)
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1
UNIX socket: /var/run/mysqld/mysqld.sock
Uptime: 29 sec

Threads: 1 Questions: 109 Slow queries: 0 Opens: 48 Flush tables: 1 Open tables: 41 Queries per second avg: 3.758
--------------

JDBC連接

在jdbc字符串中增加下面參數
useSSL=true&verifyServerCertificate=false
這麼就不需要客戶端配置證書了,配置就簡單很多。因爲mysql本身有賬號口令認證,因此不需要證書認證。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章