从MySQL 5.7开始默认支持SSL,SSL开启后会对性能有一定影响,如果数据库没有暴露在外网,通常不会打开SSL,但如果数据是相当核心与机密的,建议配置SSL,虽然对性能有影响,但不是特别大。相关配置过程如下:
1、在数据库初始化完成后执行SSL证书生成
bin/mysql_ssl_rsa_setup
2、在datadir会生成很多.pem文件,修改属主为mysql用户
chown -R mysql.mysql /data/mysql/*.pem
3、查看SSL相关状态,如果能获取到pem信息代表成功
show variables like '%ssl%';
4、指定用户是否强制使用SSL
mysql > alter user 'tanglu'@'%' require none; #非强制,也是默认选项
mysql > alter user 'tanglu'@'%' require ssl; #强制用户使用SSL连接
mysql > alter user 'tanglu'@'%' require x509; #使用X509方式的SSL,客户端在登录的时候必须提供CA文件才可以登录,CA文件就是生成的PEM了
5、开启强制SSL后,用户连接数据库时如果手动关闭SSL,则无法连接上数据库
mysql -utanglu -p123456 -h10.3.0.220 #使用TCP方式连接默认会使用SSL,无需加其他选项
mysql -utanglu -p123456 -ssl-mode=DISABLED #如果手动关闭SSL则无法连接数据库