centos 7 服务器
服务器装了多个mysql版本的,操作前需确认软连接是否指向当前版本
which mysql #查询位置
cd /usr/bin/
mv mysql mysql.bak #备份
ln -s /home/tools/mysql5.7.44/bin/mysql mysql #指向新地址

①修改my.cnf配置

cd /home/tools/mysql/
mv my.cnf my.cnf.25-04bak     #备份原配置文件
vi my.cnf

如果有多个服务器调用该数据库,可以先切换端口,避免重复请求连接占满
如果仅有一台服务器,无通信需求 可不切换端口

port=3326        # [mysqld] [client]都需修改 

#指定服务端密钥和证书路径
在[mysqld]下添加如下代码:

ssl-ca = /home/tools/mysql/ca.pem                           #与证书生成位置一致
ssl-cert = /home/tools/mysql/server-cert.pem
ssl-key = /home/tools/mysql/server-key.pem

#指定客户端密钥和证书路径
在[client]下添加如下代码:

ssl-ca = /home/tools/mysql/ca.pem
ssl-cert = /home/tools/mysql/client-cert.pem
ssl-key = /home/tools/mysql/client-key.pem

#强制ssl验证
在[mysqld]下添加如下代码:

require_secure_transport = ON
tls_version = TLSv1.2            #指定协议版本,非必选,根据实际情况
#skip_ssl                               #注释原配置 不跳过ssl验证

②停止mysql 服务

 ./mysql.server stop

③生成证书

在mysql bin目录执行 需先确保mysql服务已停止,再生成

cd /home/tools/mysql/bin/    
./mysql_ssl_rsa_setup --datadir=/home/tools/mysql/ --uid=mysql --user=mysql

cd  /home/tools/mysql/                        #切换至证书路径,验证证书有效性[非必要]
openssl verify -CAfile ca.pem server-cert.pem client-cert.pem

 ./mysql.server start             #检查证书后,启动服务

④登入mysql后 修改用户授权

ALTER USER 'newtest'@'110.11.10.%' REQUIRE SSL;
FLUSH PRIVILEGES;
exit   #退出 登录测试

mysql -unewtest -p --port 3326 -h 110.11.10.1 --ssl-cert=/home/tools/mysql/client-cert.pem --ssl-key=/home/tools/mysql/client-key.pem

#登入MySQL以后查询相关配置(注意账户权限)
 \s      #检查当前登录状态
show global variables like '%ssl%';                   #检查证书和ssl配置
SELECT user, host, ssl_type FROM mysql.user ;       #检查权限
SHOW variables LIKE 'require_secure_transport';     #检查 已配置默认开启
set global require_secure_transport = 'ON';         #手动开启

⑤相关系统的配置修改jdbc url

如果有其他应用系统与该数据库通信,需修改配置 [+ 重启系统服务]


utf8 是 MySQL 内部对 UTF-8 字符集的命名别名,有的链接我用utf-8也行…


spring.datasource.url= jdbc\:mysql\://110.11.10.1\:3326/db_name?useUnicode\=true&characterEncoding\=utf8&allowMultiQueries\=true&useSSL\=true&verifyServerCertificate\=false&enabledTLSProtocols\=TLSv1.2

注:因TLS协议版本 连接该库的其他系统所使用的mysql-connector驱动版本至少应为
mysql-connector-java-5.1.47.jar 否则会报错

=======================================================

⑥Windows客户端登录 DBeaver

#我用navicat登录不成功,无法指定协议版本…
在这里插入图片描述
在这里插入图片描述

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐