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

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

环境版本说明

背景:项目需要开发一个单机应用程序
操作系统:中标麒麟操作系统(兆芯版)
数据库:达梦数据库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_20200813_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 群里人都挺热心。

最后

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

中标麒麟+QT+达梦数据库相关推荐

  1. 如何PC机上搭建 中标麒麟系统+达梦数据库的开发环境

    VMWare+中标麒麟+达梦8 1.VMWare官网下载地址: https://www.vmware.com/cn/products/workstation-pro/workstation-pro-e ...

  2. 中标麒麟运行java,开发知识-中标麒麟安装达梦数据库(DM8)

    环境说明 操作系统版本:NeoKylin Linux Advanced Server release V7Update6 (Chromium) 1.前期准备工作 1.1数据库下载 1.2创建安装用户 ...

  3. 中标麒麟安装达梦数据库安装

    安装数据步骤 达梦数据在中标麒麟系统中使用图形化界面安装,简单易懂,安装快捷. 安装包准备 服务器基于x86架构1. 操作系统包:NeoKylin Advance V6.0 x86_64.iso2.达 ...

  4. 中标麒麟安装达梦数据库DM8

    环境说明: 中标麒麟高级服务器操作系统 V7.0 数据库:达梦8 安装步骤: 检查环境 操作系统版本: cat /etc/issue 内核: uname -r 查看 CPU:cat /proc/cpu ...

  5. 中标麒麟系统安装达梦8 数据库

    中标麒麟系统安装达梦8 数据库 最近国产化软件相继进入各大软件公司使用,达梦作为国内数据库的佼佼者,我们也应该学会使用,软件都是一点点推广,积累了一点小经验,拿来分享.... 环境准备 1.VMwar ...

  6. 银河麒麟安装达梦数据库

    本次实战主要内容是,在虚拟机里面装了一个银河麒麟系统,在该系统里面安装达梦数据库 准备 虚拟机 Oracle VM VirtualBox 安可环境系统为银河麒麟Kylin-Desktop-V10-Re ...

  7. qt 达梦数据库 driver not loaded

    网上说法很多,其他方法我就不一一介绍,因为试了都没啥用! 这是因为没有动态库没有拷贝过来,我是用odbc方式了解,达梦数据库安装好,系统odbc配置好,qt程序pro文件添加sql qsqldatab ...

  8. 国产化之银河麒麟安装达梦数据库DM8

    背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟,数据库使用DM8. 虽然在之前的文章中已经成功模拟国产飞腾处理器,但是运行效率不高,所以这里的银河麒麟操作系统还是运行在x64平台上 ...

  9. 达梦数据库(dm8)命令行安装过程

    操作系统:麒麟V10 达梦数据库:dm8(企业版) 本机IP地址:192.168.174.180 一.达梦数据库的环境初始化(操作系统及相关配置) 1. 配置主机名,并修改本地hosts文件 host ...

最新文章

  1. (传送门) IDEA 控制台输出JVM的GC日志
  2. MariaDB 数据库迁移
  3. java怎么导入一个项目到eclipse
  4. 台安变频器n2按键说明_台安N2变频器说明书.pdf
  5. GitHub重大更新即将加入免费软件包管理服务;钉钉社区因出现违规内容将停更整改一个月;Uber上市,定价为45美元……...
  6. 多亏它,让大家做好“山竹”来袭的准备【Make It Real故事汇】
  7. Linux内核分析 - 网络[九]:邻居表
  8. 【ES】ES 7.6 fuzzy 搜索 (模糊搜索)
  9. Java基础学习总结(76)——Java异常深入学习研究
  10. hnu暑期实训 数码管儿
  11. cocos2d-x 3.0学习游戏笔记的例子《卡塔防》第五步---开始建立游戏界面
  12. 【转】临界区、互斥对象
  13. 如何在新系统下重玩老游戏
  14. 算王标准层的量如何计算机,算王软件常用功能技巧
  15. HTML页面基本结构介绍
  16. java截取图片截图画框
  17. 【如何注销华为云账号(解绑合作伙伴)】
  18. 实验7-3-3 统计大写辅音字母(15 分)
  19. 【转】-ECshop数据库表结构
  20. html表格 根据窗口调整,如何根据浏览器窗口大小动态调整html表格

热门文章

  1. 面试经验(互联网,研究所,国企)
  2. java cmd进入目录_cmd进入某个目录
  3. 修改3389远程端口号
  4. bzoj-1565 植物大战僵尸
  5. 计算机音乐对演出的用处,音乐对想象力的影响作用
  6. LF4J: No SLF4J providers were found. SLF4J: Defaulting to no-operation (NOP) logger implemen
  7. 现代OpenGL教程 02 - 贴图
  8. TCP/IP协议及配置
  9. 黑群晖linux安装教程,黑群晖菜鸟安装教程(一)制作U盘引导及软洗白!
  10. 自控力:别把赌注压在明天