mysql 连接问题记录

一、ssl证书问题

SSL(Secure Socket Layer:安全套接字层)利用数据加密、身份验证和消息完整性验证机制,为基于TCP等可靠连接的应用层协议提供安全性保证(http升级为https,ws升级为wss)。

Mysql在5.x版本之后(具体哪些版本不做考究)要求,连接数据库时,如果不设置显示选项useSSL=trueuseSSL=true,则默认建立ssl连接。若要禁用ssl连接,需要通过设置useSSL=false来显示的禁用SSL。如果设置useSSL=true则需要为服务器证书验证提供信任存储(网上有不少资料,本人不了解,不涉及这一部分)。开发环境下,建议关闭ssl,线上环境视需求开启。

如果不清楚自己的数据库版本是否默认开启了SSL,可以通过以下命令查看:

mysql> show variables like "%ssl%";
+---------------+-----------------+
| Variable_name | Value           |
+---------------+-----------------+
| have_openssl  | DISABLED        |
| have_ssl      | DISABLED        |
| ssl_ca        | ca.pem          |
| ssl_capath    |                 |
| ssl_cert      | server-cert.pem |
| ssl_cipher    |                 |
| ssl_crl       |                 |
| ssl_crlpath   |                 |
| ssl_key       | server-key.pem  |
+---------------+-----------------+
9 rows in set (0.00 sec)

mysql>  show variables like '%ssl%';
+---------------+-----------------+
| Variable_name | Value           |
+---------------+-----------------+
| have_openssl  | YES             |
| have_ssl      | YES             |
| ssl_ca        | ca.pem          |
| ssl_capath    |                 |
| ssl_cert      | server-cert.pem |
| ssl_cipher    |                 |
| ssl_crl       |                 |
| ssl_crlpath   |                 |
| ssl_key       | server-key.pem  |
+---------------+-----------------+

如果have_sslDISABLED,说明未开启,YES则表示已开启。如果为DISABLED,则表示在数据库配置层面上关闭了SSL,即使使用useSSL=true也不会建立SSL认证。所以我们也可以通过修改该变量的值来达到控制效果(不做赘述)

也可以通过查看当前连接状态来确定是否使用了SSL:

mysql> status
--------------
mysql  Ver 14.14 Distrib 5.7.25, for Win64 (x86_64)

Connection id:          32785
Current database:
Current user:           root@localhost
SSL:                    Not in use
# SSL:                    Cipher in use is DHE-RSA-AES256-SHA
Using delimiter:        ;
Server version:         5.7.25-log MySQL Community Server (GPL)
Protocol version:       10
Connection:             localhost via TCP/IP
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    gbk
Conn.  characterset:    gbk
TCP port:               3306
Uptime:                 2 days 18 hours 54 min 49 sec

二、升级至mysql8.+版本踩坑

  1. 最常见的问题:驱动问题
    mysql 8.0 以后使用了新的连接方式,原先的数据库连接驱动的方式不再适用,需要使用最新的mysql连接驱动,即将com.mysql.jdbc.Driver 改为com.mysql.cj.jdbc.Driver

其他:https://blog.csdn.net/LiuWaiter/article/details/82869516?utm_source=blogxgwz2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值