将基于Delphi MySQL的数据库部署到Linux Ubuntu/Android平台
Delphi 11.3 MySQL应用Linux部署解决方案
核心问题
你猜的没错,Linux下访问MySQL必须要有对应依赖库,和Windows的libmysql.dll对应,Linux这边是libmysqlclient.so系列文件。直接装MySQL完整包没用,因为你的应用需要的是客户端运行库,不是服务端,而且版本得匹配。
具体解决步骤
1. 先查缺了啥库
在Linux虚拟机里,打开终端进到你放应用的目录,执行命令:ldd 你的应用文件名
这条命令会列出所有依赖的库,找带mysql的条目,比如libmysqlclient.so.21 => not found,这就是你缺的东西。
2. 安装对应版本的客户端库
根据你用的Linux发行版选命令:
- Debian/Ubuntu系:
sudo apt-get install libmysqlclient-dev - RedHat/CentOS系:
sudo yum install mysql-community-libs
注意:如果安装后还是报错,大概率是版本不匹配,得去MySQL官网下载和你开发时用的MySQL版本一致的客户端库包,解压出.so文件。
3. 把库放到应用能找到的地方
有两种方式:
- 直接丢应用同目录:把下载的
libmysqlclient.so.XX(XX是版本号)放到应用可执行文件的文件夹里,还要建个软链接让系统能识别:ln -s libmysqlclient.so.XX libmysqlclient.so - 丢系统库目录:复制库文件到
/usr/lib或/usr/local/lib,然后执行:sudo ldconfig
刷新系统库缓存。
4. 测试运行
回到应用目录,执行:./你的应用文件名
如果还是跑不起来,看终端输出的错误提示,比如版本不兼容就换对应版本的库,权限不够就加chmod +x 你的应用文件名。
Android适配小提示
Android那边逻辑差不多,要把对应CPU架构的libmysqlclient.so(比如arm64-v8a)放到Delphi项目的libs/对应架构文件夹里,编译APK时会自动打包进去。
内容的提问来源于stack exchange,提问作者WobblyBob
相关产品推荐
相关产品推荐

