操作场景
为了提高关系数据库MySQL版的链路安全性,您可以启用SSL(Secure Sockets Layer)加密,并安装SSL CA证书到需要的应用服务。SSL在传输层对网络连接进行加密,能提升通信数据的安全性和完整性,同时会增加网络连接响应时间。
约束限制
实例的SSL状态需要为“开启”状态。
已下载SSL CA证书。
操作步骤
开启SSL加密后,应用或者客户端连接MySQL时需要配置SSL CA证书。本文以MySQL Workbench、Navicat配置方法为例,介绍SSL CA证书安装方法。其它应用或者客户端请参见对应产品的使用说明。
MySQL Workbench配置方法:
- 打开MySQL Workbench。
- 选择Database > Manage Connections。
- 启用Use SSL,并导入SSL CA证书。
说明如果关闭SSL后又需要重新开启,SSL CA证书将会重新生成,用户需要下载最新的证书连接数据库,旧证书将失效无法进行数据库连接。
为防止开启SSL后无需证书也可以连接数据库,请设置用户登录方式限制,指令可参考:alter user 'root'@'%' require ssl。
Navicat配置方法:
- 打开Navicat。
- 选择目标数据库并单击鼠标右键,选择编辑连接。
- 选择SSL页签,选择.pem格式CA证书的路径。
- 单击确定。
- 通过双击目标数据库来测试能否正常连接。
通过SSL连接数据库示例代码,Python示例:
- 需要首先安装依赖pymysql
pip install pymysql
- 编写代码
import pymysql import traceback try: conn = pymysql.connect( host='192.168.*.*', user='*****', passwd='******', db='*****', ssl=True, ssl_ca='/path/ca_file_name') cursor = conn.cursor() cursor.execute('select version()') data = cursor.fetchone() print('Database version:', data[0]) cursor.close() except pymysql.Error as exc: print(traceback.format_exc())