中标麒麟+QT+达梦数据库
中标麒麟+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+达梦数据库相关推荐
- 如何PC机上搭建 中标麒麟系统+达梦数据库的开发环境
VMWare+中标麒麟+达梦8 1.VMWare官网下载地址: https://www.vmware.com/cn/products/workstation-pro/workstation-pro-e ...
- 中标麒麟运行java,开发知识-中标麒麟安装达梦数据库(DM8)
环境说明 操作系统版本:NeoKylin Linux Advanced Server release V7Update6 (Chromium) 1.前期准备工作 1.1数据库下载 1.2创建安装用户 ...
- 中标麒麟安装达梦数据库安装
安装数据步骤 达梦数据在中标麒麟系统中使用图形化界面安装,简单易懂,安装快捷. 安装包准备 服务器基于x86架构1. 操作系统包:NeoKylin Advance V6.0 x86_64.iso2.达 ...
- 中标麒麟安装达梦数据库DM8
环境说明: 中标麒麟高级服务器操作系统 V7.0 数据库:达梦8 安装步骤: 检查环境 操作系统版本: cat /etc/issue 内核: uname -r 查看 CPU:cat /proc/cpu ...
- 中标麒麟系统安装达梦8 数据库
中标麒麟系统安装达梦8 数据库 最近国产化软件相继进入各大软件公司使用,达梦作为国内数据库的佼佼者,我们也应该学会使用,软件都是一点点推广,积累了一点小经验,拿来分享.... 环境准备 1.VMwar ...
- 银河麒麟安装达梦数据库
本次实战主要内容是,在虚拟机里面装了一个银河麒麟系统,在该系统里面安装达梦数据库 准备 虚拟机 Oracle VM VirtualBox 安可环境系统为银河麒麟Kylin-Desktop-V10-Re ...
- qt 达梦数据库 driver not loaded
网上说法很多,其他方法我就不一一介绍,因为试了都没啥用! 这是因为没有动态库没有拷贝过来,我是用odbc方式了解,达梦数据库安装好,系统odbc配置好,qt程序pro文件添加sql qsqldatab ...
- 国产化之银河麒麟安装达梦数据库DM8
背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟,数据库使用DM8. 虽然在之前的文章中已经成功模拟国产飞腾处理器,但是运行效率不高,所以这里的银河麒麟操作系统还是运行在x64平台上 ...
- 达梦数据库(dm8)命令行安装过程
操作系统:麒麟V10 达梦数据库:dm8(企业版) 本机IP地址:192.168.174.180 一.达梦数据库的环境初始化(操作系统及相关配置) 1. 配置主机名,并修改本地hosts文件 host ...
最新文章
- (传送门) IDEA 控制台输出JVM的GC日志
- MariaDB 数据库迁移
- java怎么导入一个项目到eclipse
- 台安变频器n2按键说明_台安N2变频器说明书.pdf
- GitHub重大更新即将加入免费软件包管理服务;钉钉社区因出现违规内容将停更整改一个月;Uber上市,定价为45美元……...
- 多亏它,让大家做好“山竹”来袭的准备【Make It Real故事汇】
- Linux内核分析 - 网络[九]:邻居表
- 【ES】ES 7.6 fuzzy 搜索 (模糊搜索)
- Java基础学习总结(76)——Java异常深入学习研究
- hnu暑期实训 数码管儿
- cocos2d-x 3.0学习游戏笔记的例子《卡塔防》第五步---开始建立游戏界面
- 【转】临界区、互斥对象
- 如何在新系统下重玩老游戏
- 算王标准层的量如何计算机,算王软件常用功能技巧
- HTML页面基本结构介绍
- java截取图片截图画框
- 【如何注销华为云账号(解绑合作伙伴)】
- 实验7-3-3 统计大写辅音字母(15 分)
- 【转】-ECshop数据库表结构
- html表格 根据窗口调整,如何根据浏览器窗口大小动态调整html表格
热门文章
- 面试经验(互联网,研究所,国企)
- java cmd进入目录_cmd进入某个目录
- 修改3389远程端口号
- bzoj-1565 植物大战僵尸
- 计算机音乐对演出的用处,音乐对想象力的影响作用
- LF4J: No SLF4J providers were found. SLF4J: Defaulting to no-operation (NOP) logger implemen
- 现代OpenGL教程 02 - 贴图
- TCP/IP协议及配置
- 黑群晖linux安装教程,黑群晖菜鸟安装教程(一)制作U盘引导及软洗白!
- 自控力:别把赌注压在明天