You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delphi 12如何连接高版本MariaDB?FireDAC兼容问题求解

解决Delphi 12 FireDAC连接高版本MariaDB/MySQL的标准方法

核心原因

FireDAC内置的MySQL/MariaDB驱动版本校验逻辑未覆盖MariaDB 11.x系列(报错中的302060000对应MariaDB 11.4的版本编码),但已适配MySQL 9.x版本。

标准解决方法

方法1:替换FireDAC的MySQL客户端库

  • 从MariaDB官方下载最新的Connector/C库(如MariaDB Connector/C 3.3.x,支持MariaDB 11.x)
  • 找到Delphi安装目录下的FireDAC\Phys\MySQL文件夹,替换其中的libmysql.dll(注意匹配编译目标的32/64位)
  • 重启Delphi后重新测试连接,新客户端库会正确识别MariaDB 11.x版本,绕过旧版校验逻辑

方法2:修改FireDAC版本校验逻辑(需源码授权)

若拥有FireDAC源码权限:

  • 打开FireDAC.Phys.MySQL单元,定位版本校验的分支代码
  • 将MariaDB版本上限从10.6调整为11.x对应的编码(如11.4对应302060000)
  • 重新编译FireDAC组件包,替换原有包后使用

方法3:使用第三方数据库连接组件

  • 选择兼容高版本MariaDB的第三方组件,如UniDAC、AnyDAC(FireDAC前身,版本兼容更宽松)
  • 这类组件会及时跟进数据库新版本,无需手动替换库文件

临时测试方案

若仅用于临时测试,可在连接参数中直接指定新版libmysql.dll路径,示例代码:

FDConnection1.Params.Add('VendorLib=C:\YourPath\libmysql.dll');
FDConnection1.Params.Add('Server=你的MariaDB服务器地址');
FDConnection1.Params.Add('Database=目标数据库名');
FDConnection1.Params.Add('User_Name=用户名');
FDConnection1.Params.Add('Password=密码');

内容的提问来源于stack exchange,提问作者jstarek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 07:40:58