300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 中标麒麟+QT+达梦数据库

中标麒麟+QT+达梦数据库

时间:2023-01-16 23:59:34

相关推荐

中标麒麟+QT+达梦数据库

中标麒麟+QT+达梦数据库

环境版本说明中标麒麟的安装达梦数据库的安装和连接一、创建安装用户、组(root下操作)二、新建安装数据库的文件(root下操作)三、挂载ISO文件(root下操作)四、安装数据库五、创建实例六、使用unixODBC连接达梦数据库七、Qt通过unixODBC连接数据库数据库安装和连接过程中可能会出现的问题一、错误信息输出方式二、socket未连接(网络通信异常)三、Can't open lib '/dm7/bin/libdodbc.so' : file not foundManger工具一些基础操作对现有表操作流程如下:新建一个表空间资料参考最后

环境版本说明

背景:项目需要开发一个单机应用程序

操作系统:中标麒麟操作系统(兆芯版)

数据库:达梦数据库V7

开发工具:Qt Creator

开发技术:Qt开发框架、C++

中标麒麟的安装

在虚拟机安装中标麒麟,操作步骤跟一般步骤一样,需要注意的点有两个:

1.在选择运行内存大小时,将运行内存大小提高至3G(后面安装达梦数据库时会用到)。

2.在系统安装向导中,记得勾选同时安装SDK工具,这样就会把编程工具一起安装好。

安装好后重启虚拟机即可。

达梦数据库的安装和连接

一、创建安装用户、组(root下操作)

达梦官方建议新建本地用户来安装数据库,目的是减少对操作系统的影响。

1.创建一个名为dinstall的组

groupadd dinstall

2.建立一个名为dmdba的用户

useradd -g dinstall dmdba

3.设置用户dmdba的密码

passwd dmdba

二、新建安装数据库的文件(root下操作)

1.新建名为dm7的文件,此时若命令的目录处于桌面的话([root@localhost 桌面]),那dm7会在我的电脑–>本地磁盘中生成。

mkdir /dm7

2.设置拥有dm7的用户,将dm7的拥有者指定为dinstall组下的dmdba用户。

chown dmdba:dinstall -R /dm7

三、挂载ISO文件(root下操作)

使用命令:mount iso文件路径 要挂载的文件路径。以下面为例,iso文件放置在桌面,命令头处于[root@localhost 桌面]状态。

mount -o loop dm7__x86_rh6_64_ent_7.6.1.66.iso /mnt

挂载成功后会提示:mount:/dev/loop0写保护,将以只读的方式挂载。

四、安装数据库

直接在当前用户界面,通过终端切换成dmdba进入mnt文件执行DMInstall.bin会提示图形化界面安装失败,可以有如下两种方式处理:

1.在root下执行命令:

xhost +

再执行如下2的命令。

2.通过虚拟机切换到dmdba用户界面,再执行命令:

[dmdba@localhost mnt]./DMInstall.bin

3.在安装过程中可能会提示你一次打开文件数量不足,此时可以通过进入limits.conf文件进行修改,在root下进行。

vim /etc/security/limits.conf

再依次点击i进入insert模式、在文档最后添加如下信息:

* soft nofile 4096* hard nofile 65536* soft nproc 4096* hard nproc 65536

添加完成后保存退出,并reboot重启服务。

4.安装过程中,选择/dm7目录,安装完成后在root下执行指定代码启动数据库服务。

注:在dmdba用户下默认地址是/home/dmdba/dmdbms,在root下则为/opt/dmdbms。

五、创建实例

上述操作完成之后,会自动弹出初始化达梦数据库实例运行界面。按操作完成即可,也可以到/dm7的tool文件夹下的dbca.sh运行创建实例界面。一切基本默认就可以。

初始端口默认是5236,这个要记得,连接数据库时需要它。

创建完实例后需要在root下执行如下三条命令。(系统会有提示)

安装完成后,在/dm7目录下的tool文件夹就可以找到常用的客户端管理工具。最常用的有如下几种:

1.管理工具 Manager:用于管理用户、模式、表空间等。

2.实例创建 dbca.sh:用于创建实例。

3.服务管理dmservice:用于管理实例运行状态。

此外还需检查dmdba下.bash_profile中有关路径配置是否正确,如有问题,则自己添加,正确的路径显示应该如下:

六、使用unixODBC连接达梦数据库

1.达梦数据库在安装的时候都默认安装ODBC驱动,可以通过命令:

odbcisnt -j

查看是否安装,如果出现如下图所示情况,则说明安装完成。

注:有时候etc目录下并不存在odbc.ini,新建一个貌似不会影响,这里我也搞不太懂,希望有人能指点一下。

2.接下来对odbcinst.ini和odbc.ini这两个文件进行编辑(在root下进行)。

在odbcinst.ini中添加如下红框代码:

在odbc.ini中添加如下红框代码:

注:其中odbc.ini的Driver(DM7 ODBC DRIVER)与odbcinst.ini的开头[DM7 ODBC DRIVER]保持一致。Odbcinst.ini中的Driver指向数据库安装目录中的libdodbc.so。odbc.ini中的UID,PWD指向实例用户及其密码一般用SYSDBA即可,TCP_PORT则指向端口。

3.测试,在终端输入:isql DM7

这里就表示连接成功。

七、Qt通过unixODBC连接数据库

1.由上述步骤可知:我们数据库安装路径只在dmdba用户下设置过(第五最后处),因此Qt项目只有在dmdba用户的界面下创建才可以正常连接到数据库,若要在其他本地用户界面连接数据库,则可以参考第五最后对于dmdba用户.bash_profile的设置,对自己想要修改的用户进行路径修改,修改后使用命令:

source .bash_profile

使配置生效,更保险的可以再重新启动一下。

2.代码连接实例

在pro文件添加sql后那一行代码应该为:

QT +=core gui sql

#include "mainwindow.h"#include <QApplication>#include <QSqlDatabase>#include <QDebug>#include<QSqlError>int main(int argc, char *argv[]){// QApplication a(argc, argv);// MainWindow w;// w.show();// return a.exec();QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");//固定二选一db.setDatabaseName("DM7");//跟odbc.ini文件中的头保持一致[DM7]db.setPort(5236);//端口db.setHostName("localhost");//本地的用localhostdb.setUserName("SYSDBA");//用户名db.setPassword("SYSDBA");//我使用的是默认口令if(db.open()){qDebug()<<"connnect right";db.close();return true;}else{qDebug()<<db.lastError();return false;}}

连接成功后输出”connect right“。

数据库安装和连接过程中可能会出现的问题

由于之前测试的时候很多错误信息都没有截图保留下来,因此在下面介绍时只提一些错误的关键词。

一、错误信息输出方式

1.在连接用终端进行unixODBC连接测试时,可以使用-V来打印出错误信息:

isql -V DM7

2.在用Qt连接程序时,输出连接错误信息的话可以通过lastError()函数,具体实现可以见上述Qt连接实例。

下面就开始介绍常见的错误类型及解决方式

二、socket未连接(网络通信异常)

socket未连接这个是很常见的一个错误,也是比较容易解决的错误,一般出现这个问题可以从如下几个方面查找问题:

1.检查输入口令是否正确。

2.使用dmservice.sh工具检查数据库实例是否启动,是否创建。

(1)如果实例不存在,则可以通过dbca.sh工具创建实例。

(2)若发现dmservice.sh中数据库实例未启动,则可以通过终端在root下启动dmservice.sh再手动启动数据库实例(用鼠标点击打开dmservice.sh的话,在启动的时候会提示用root来启动)。一般情况下启动两个即可。

3.检查防火墙状态

防火墙状态查看可以使用如下命令:

systemctl status firewalld

一般情况下,本地连接数据库是不会出现因为防火墙导致的错误。这种错误常见在连接在服务器的数据库。

临时关闭防火墙可以使用如下命令:

systenctl stop firewalld

三、Can’t open lib ‘/dm7/bin/libdodbc.so’ : file not found

这个错误出现频率是最高的,只要是配置文件出错,或者是配置文件不生效,都会出现这个错误。记住这个错误,最最最主要原因还是要回归到配置文件。

1.配置文件.bash_profile不生效。

明确自己是在那个用户下开发Qt程序,如果你是在dmdba下就配置dmdba的.bash_profile,在其他用户下开发就配置其他用户的.bash_profile并使其生效。

上面是我在ljr用户上的配置,其实跟在dmdba上的配置一样。一开始我就是没想到这个,以为只要在dmdba上配置.bash_profile就可以所有用户通用。希望后来小白能注意到这个点,避开这个坑。

配置完成后使用命令:

source .bash_profile

2.odbc.ini和odbcinst.ini设置有问题

这个会出现问题一般都是没有两个名字没有对应起来。具体见上述配置步骤。

Manger工具一些基础操作

在创建数据库实例时,最好选择同时安装两个已有的案例,BOOKSHOP,DMHR,后面可以做一些实验。

对现有表操作流程如下:

新建一个表空间

个人理解表空间可以看成类似mysql数据库中我们创建的数据库存放数据的空间,表空间文件后缀名为.DBF,安装时我们选择的安放表空间数据库文件为DAMENG

1.新建表空间。在表空间处右键–>新建表空间。

2.新建管理用户。赋予权限和管理的表空间,之后会在模式上生成对应的模式。

用户命名会生成对应模式,且名字相同。这里我命名为TESTDB

3.在模式下新建表。设置完表属性后可以直接在右边表中直接录入数据。

资料参考

达梦数据库官方哔哩哔哩链接

达梦数据库官方文档和软件下载链接

达梦数据库官方讨论社区

讨论3群号:113992625 群里人都挺热心。

最后

本博客来自本人这阵子安装数据库和连接碰到的问题的总结,如果缺失或错漏欢迎大家在评论区或私信我指正,希望这篇博客能对跟我一样初入坑的小白能有所帮助。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。