MySQL5.7 SSL配置和启用

一、安装时启动SSL

[root@linux-node local]# /usr/local/mysql5.7/bin/mysqld --initialize --basedir=/usr/local/mysql5.7 --datadir=/usr/local/mysql5.7/data/ --user=mysql
[root@linux-node local]# /usr/local/mysql5.7/bin/mysql_ssl_rsa_setup 

当运行完这个命令后,默认会在data(数据)目录下生成以下pem文件,这些文件就是用于启用SSL功能的

[root@linux-node local]# ll /usr/local/mysql5.7/data/*.pem                             
-rw-------. 1 /usr/local/mysql5.7/data/ca-key.pem        #CA私钥
-rw-r--r--. 1 /usr/local/mysql5.7/data/ca.pem            #自签CA证书,客户端连接也需要提供    
-rw-r--r--. 1 /usr/local/mysql5.7/data/client-cert.pem   #客户端连接服务器端需要提供的证书文件
-rw-------. 1 /usr/local/mysql5.7/data/client-key.pem    #客户端连接服务器端需要提供的私钥文件
-rw-------. 1 /usr/local/mysql5.7/data/private_key.pem   #私钥/公钥对的私有成员
-rw-r--r--. 1 /usr/local/mysql5.7/data/public_key.pem    #私钥/公钥对的共有成员
-rw-r--r--. 1 /usr/local/mysql5.7/data/server-cert.pem   #服务器端证书文件
-rw-------. 1 /usr/local/mysql5.7/data/server-key.pem    #服务器端私钥文件

MySQL5.7 SSL配置和启用_第1张图片

在配置文件中指定ssl证书路径

ssl-ca=/usr/local/mysql5.7/data/ca.pem
ssl-cert=/usr/local/mysql5.7/data/server-cert.pem
ssl-key=/usr/local/mysql5.7/data/server-key.pem

二、进入数据库查看
1、查看变量值

mysql> show global variables like '%ssl%';

MySQL5.7 SSL配置和启用_第2张图片

2、查看 test用户的连接方式

mysql>\s;

MySQL5.7 SSL配置和启用_第3张图片

3、如果用户是采用本地localhost或者sock连接数据库,那么不会使用SSL方式了
MySQL5.7 SSL配置和启用_第4张图片

三、如果安装MySQL5.7时没有运行过mysql_ssl_rsa_setup,那么如何开启SSL

1、关闭MySQL服务
2、运行mysql_ssl_rsa_setup 命令
3、到data_dir目录下修改.pem文件的所属权限用户为mysql chown -R mysql.mysql *.pem
4、启动MySQL服务

四、强制某用户必须使用SSL连接数据库

#更改已经存在用户
mysql> alter mysql.user test@'%' require ssl;

#新建必须使用ssl用户
mysql> grant all on *.* to 'slave'@'192.168.133.1' identified by 'ASDF123asdf' require ssl;
mysql> flush privileges;

对于强制使用SSL连接的用户,如果不是使用ssl连接的就会报错

[root@linux-node ~]# mysql -uslave  -pASDF123asdf -h 192.168.133.1 --ssl=0   #不启用ssl连接
[root@linux-node ~]# mysql -uslave  -pASDF123asdf -h 192.168.133.1 [--ssl-ca=/usr/local/mysql5.7/data/ca.pem]   #启用ssl连接

你可能感兴趣的:(mysql数据库,mysql,ssl连接)