随笔时间:2022-04-07

随笔内容:Delphi连接开启SSL服务的MySQL

客户端环境:Win10,Delphi7,MyDAC7.0,Indy10.0,OpenSSL1.0.1

服务端环境:Ubuntu18.04,MySQL5.7.3

啰嗦几句:一个半吊子程序员,毕业后接触的第一门语言就是Delphi7,断断续续使用了15年,已是为人父母年纪,难得有点时间能学习一点,可惜记忆大不如从前,本着有一点记一点的想法,记录下自己的使用经过,方便以后查看,东西可能比较简单,可惜Delphi资料实在少的可怜,各位大神不喜勿喷,嘴下留情,谢谢。

背景介绍:使用Delphi连接MySQL,MyDAC、UniDAC、FireDAC等组件都可以,如果MySQL不开启SSL时,客户通过Wireshark抓包工具,可以很轻松抓到你的SQL语句,用户登录信息,服务器信息等,如果这是在局域网内使用,那不影响,但是如果是在给广域网用户使用时候,这样数据库就完全暴露给存在恶意的用户面前,因此为了安全,需要启用MySQL的SSL加密,MySQL在Ubuntu下的SSL启用,在我另外一篇笔记中,有需要的可以去看,启动SSL加密后,经过Wireshark抓包测试,以笔者的能力,暂时没有发现相关暴露信息,这样可以保护数据库,保证系统稳定。

多说一句,笔者在调通之前,一直报错,提示缺少libeay32.dll和ssleay32.dll,在google和baidu上搜索解决方案,解决方案全是需要安装Securebridge插件,使用SSLIOHandler组件,不过具体实现方法,没有说的很详细,以下是链接:

MySQL Data Access Components Documentation

笔者照葫芦画瓢,捯饬3天3夜(中间又走了好多弯路,哎岁数大了),终于安装全所有组件,本以为万事大吉,可惜还是报缺少libeay32.dll和ssleay32.dll这个错误,才想到可能自己思路被带偏了,应该从这个错误入手,最后解决了这个报错之后,新建Form,只放置con,设置参数,点击连接,问题解决。

实现方法:(安装包都在网盘里面,自己去下载)

1、安装MyDAC7.0,当然可以使用更高版本,一路next,不需要选择啥;

2、解压缩OpenSSL1.0.1,把里面的libeay32.dll和ssleay32.dll放在以下几个路径:(可能多放了,我都放了一遍,重启计算机生效)

①要开发的程序的目录内;

②windows\system,windows\system32,windows\syswow64,delphi目录下的bin文件夹,并且把bin目录加到windows环境变量的path里面;

③重启电脑

3、设置mydac组件的options选项中的protocol为mpssl;

4、设置mydac组件的SSL Options中的CACert,Cert,Key;

5、设置mydac组件的Username,Port,Server等登录信息;

6、可以测试了!

delphi mysql事务 delphi连接mysql数据库_mysql