在ubuntn上使用qt连接win上的达梦数据库,需要一下几个步骤:
一、下载ODBC驱动程序
二、安装达梦数据库(很重要,踩坑很深)
三、qt编译odbc动态库
一、下载ODBC驱动程序
1、进行软件包的更新
sudo apt update
2、安装ODBC驱动程序包
sudo apt install unixodbc
3、安装ODBC驱动程序的头文件
sudo apt install unixodbc-dev
安装成功之后可以通过命令查看相关的配置文件
odbcinst -j
如下图所示,其中的odbcinst.ini和odbc.ini文件是需要修改的,等安装完成了达梦数据库再进行修改。
二、ubuntu安装达梦数据库
1、在达梦数据库官网中并没有提供ubuntu的安装包,而ubuntu是基于Debian的,所以下载x86下的Debian包,下载地址:https://eco.dameng.com/download/,选择如下图所示:
2、下载完成之后再拖到ubuntu中进行解压,里面会解压出来dm8的iso镜像文件,可以更改后缀名为zip格式,然后按照zip来解压出来里面会有个DMInstall.bin的文件,先设置可执行权限,以此执行一下命令
chmod 755 DMInstall.bin
xhost +
export DISPLAY=:1
./DMInstall.bin
最终就会出现达梦数据库的图形化界面安装,一直点下一步即可完成安装。之所以说第二步安装达梦数据库很重要是因为后面qt用到ODBC库的时候缺少libdodbc.so这个库文件,而这个库文件是达梦数据库自带的可以通过命令查看,一般在达梦数据库的bin目录下
sudo su
find / -name libdodbc.so
3、修改odbc.ini和odbcinst.ini配置文件,其中odbc.ini文件内容如下:
[DAMENG]
Description = DM ODBC DSN
Driver = DAMENG ODBC DRIVER
SERVER = 192.168.101.236
UID = SYSDBA
PWD = SYSDBA
TCP_PORT= 5236
第一行的DAMENG是我连的达梦数据库名字,第三行的Driver后面的DAMENG同理也是跟第一行相同,SERVER后面的是ip修改为你自己要连的达梦数据库所在地址,下面的UID和PWD就是对应的达梦数据库的账号密码这里我都是安装默认的账号密码,最后的就是达梦数据库的端口号。odbcinst.ini文件内容如下:
[DAMENG ODBC DRIVER]
Description = ODBC DRIVER FOR DAMENG
Driver=/opt/dmdbms/bin/libdodbc.so
第一行跟odbc.ini文件中的Drive要一样,Description的最后面的DAMENG跟之前的都要一样为要连的达梦数据库名字,Driver后面为你之前安装的达梦数据库中libdodbc.so所在路径,可以通过命令查找
sudo su
find / -name libdodbc.so
三、qt编译odbc动态库
参考下面链接中的编译QODBC部分:https://blog.youkuaiyun.com/Sakuya__/article/details/128355777
四、最后qt配置环境
1、此时直接在qt中连接达梦数据库会出现报错
“[unixODBC][Driver ManagerJ can’t open lib ‘/home/DaMeng/dmdbms/bin/libdodbc.so’:file not found QODBC3:Unable to connect”。
在官方文档中有解决方案:
https://eco.dameng.com/document/dm/zh-cn/faq/faq-C.html#qt%20%E5%B7%A5%E5%85%B7%E4%B8%AD%E8%BF%90%E8%A1%8C%E8%BF%9E%E6%8E%A5%E6%95%B0%E6%8D%AE%E5%BA%93%E7%A8%8B%E5%BA%8F%E6%8A%A5%E9%94%99%EF%BC%9A%E4%B8%8D%E8%83%BD%E6%89%93%E5%BC%80%20libdodbc.so,%20%E6%96%87%E4%BB%B6%20QODBC3%20%E6%B2%A1%E6%89%BE%E5%88%B0%EF%BC%8C%E6%97%A0%E6%B3%95%E8%BF%9E%E6%8E%A5
如下图所示:
这里我添加的是我本地达梦数据库安装的路径下的bin路径,更换成自己安装路径即可。完成以上步骤就可以在ubuntu中使用qt连接上win上的达梦数据库了。