Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Blog.Core连接国产达梦数据库(一)

Blog.Core连接国产达梦数据库(一)

作者头像
老张的哲学
发布于 2024-03-04 03:03:02
发布于 2024-03-04 03:03:02
29500
代码可运行
举报
文章被收录于专栏:NetCore 从壹开始NetCore 从壹开始
运行总次数:0
代码可运行

随着最近几年国产化的发展,现在很多项目都要求信创和国产化,其中国产数据库就肯定需要讨论,今天就给大家分享下,如何在BlogCore操作达梦数据库。 其实BlogCore已经完全支持国产数据库,而且完全不需要任何处理,只需要改一下数据库连接字符串即可,因为达梦数据库和Oracle还是很像的。 当然如果你用的是其他框架,有几个点是需要自己注意的,这里就分步说明下,主要是三篇文章,分别是:安装服务、客户端连接、BlogCore访问。

1、CentOS安装数据库

1、新建用户,并配置相关读取文件等参数

使用 root 登录系统,添加用户组

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
groupadd dinstall

添加用户

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba

设置用户账号密码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
passwd dmdba
xLX55xxxxxxxxxr

设置限制

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vi /etc/security/limits.conf
## 添加如下参数
dmdba hard nofile 65536
dmdba soft nofile 65536
dmdba hard stack 32768
dmdba soft stack 16384

切换dmdba用户查看限制是否生效

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
su - dmdba
ulimit -a

这些设置是用于调整操作系统的资源限制,特别是用于管理用户进程的文件描述符和堆栈大小。具体解释如下:

dmdba hard nofile 65536 、dmdba soft nofile 65536:这两个设置用于调整当前用户(dmdba)的最大文件描述符数量。

nofile指的是可以打开的文件数量。hard限制是一个硬限制,表示用户无法将该限制值超过;

而soft限制是一个软限制,用户可以临时将限制值超过,但不能超过hard限制值。在这里,设置为65536表明用户可以同时打开的文件数量非常大。

dmdba hard stack 32768、dmdba soft stack 16384:这两个设置用于调整当前用户(dmdba)的堆栈大小。

堆栈大小指的是用于存储函数调用信息、局部变量等的内存空间。同样,hard限制是一个硬限制,表示用户无法将该限制值超过;soft限制是一个软限制,用户可以临时将限制值超过,但不能超过hard限制值。在这里,设置为32768和16384表示堆栈大小为32KB和16KB。

这些设置可以根据需要进行调整,以便在多任务处理和资源密集型操作中满足系统和应用程序的要求。

2、拷贝安装文件到数据库

从官网下载文件

https://eco.dameng.com/download/

可以直接把下载的文件ftp到服务器目录,也可以通过scp的形式拷贝安装包到服务器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scp -P 9413 dm8_20230418_x86_rh6_64.zip   
root@你的ip地址:/home

切换root,输入root密码,进行解压

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
su - root
unzip dm8_20230418_x86_rh6_64.zip

3 挂载镜像,初始化安装配置

将上传的ISO文件,挂载镜像

切换root用户

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
su - root
mount -o loop /home/dm8_20230418_x86_rh6_64.iso /mnt

创建目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 数据目录
mkdir /home/dmdba/dmsoft
# 安装目录
mkdir /home/dmdba/dmdbms

达梦数据库(DMDBMS)和DMSoft两个文件夹都与达梦数据库软件相关。

DMDBMS 文件夹:DMDBMS 是达梦数据库管理系统的缩写,该文件夹包含了达梦数据库的核心组件和相关文件。其中可能包括但不限于数据库引擎、连接器、工具等。这些文件也可以在安装达梦数据库软件时选择安装的部分。

DMSoft 文件夹:DMSoft 文件夹则包含了达梦软件的其他辅助组件和工具。这些工具可能包括数据库备份与恢复工具、数据库管理工具、监控工具等。DMSoft 文件夹中的工具可以帮助用户更好地管理和维护达梦数据库系统。

总的来说,DMDBMS 文件夹包含的是达梦数据库的核心组件,而 DMSoft 文件夹包含的是辅助组件和工具。它们都是达梦数据库软件的一部分,用于支持数据库的操作和管理。

授予权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chown dmdba:dinstall -R /home/dmdba/
chmod -R 755 /home/dmdba/

切换回dmdba用户,进入挂载目录,执行达梦安装二进制

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
su  dmdba
cd /mnt/
./DMInstall.bin -i

开始执行安装过程

1、选择语言,默认英文e,输入中文C,回车

2、设置是否安装key,选择N,这里需要购买付费

3、设置时区,Y

4、设置GTM+08=China时区,默认21

5、设置安装类型,默认1

6、设置安装路径,默认 /home/dmdba/dmdbms

7、确认安装

在达梦数据库的安装过程中,确实存在四种常见的安装类型:Typical(典型安装)、Server(服务器安装)、Client(客户端安装)和 Custom(自定义安装)。它们之间的区别如下:

典型安装(Typical):这种安装类型会安装达梦数据库的主要组件,包括数据库引擎、系统表空间等。典型安装适用于大多数用户,它可以将达梦数据库完整地安装在一台计算机上,包括数据库引擎和常用的管理工具。

服务器安装(Server):这种安装类型是在网络环境中实现数据库服务器的安装。服务器安装会将数据库引擎和相关的服务安装在一台计算机上,允许其他计算机通过网络连接到该数据库服务器进行数据访问和管理。

客户端安装(Client):这种安装类型主要针对需要访问达梦数据库的客户端计算机。客户端安装通常只安装数据库的客户端组件,例如连接器、查询工具等。它不会包含数据库引擎和服务端组件。

自定义安装(Custom):自定义安装允许用户根据自身需求选择需要安装的组件和功能。您可以自行选择安装数据库引擎、客户端组件、管理工具等,以满足您特定的需求。自定义安装灵活性较高,适用于有特定需求的用户。

需要根据具体的场景和需求选择适合的安装类型。对于单机独立使用的情况,典型安装通常是最常见且合适的选择。而对于需要构建数据库服务器和多个客户端连接的情况,常规安装将涉及到服务器和客户端的安装。自定义安装则适用于需要灵活配置数据库组件的情况。

然后看到安装完成,用root运行服务安装

4 安装达梦数据库

切换root用户,安装达梦服务server

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
su - root
bash /home/dmdba/dmdbms/script/root/root_installer.sh

直到显示安装成功并开启DmAP服务

再次切换dmdba用户,进入达梦服务端安装目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
su - dmdba
cd /home/dmdba/dmdbms/bin

查看帮助指令,并初始化实例数据到dmsoft目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./dminit help
./dminit path=/home/dmdba/dmsoft

直到显示创建database成功

数据库账号密码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
账号
密码

开放端口

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
firewall-cmd --zone=public --add-port=5236/tcp --permanent

重载

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
firewall-cmd --reload

测试端口是否通常

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
telnet 你的ip 5236

5、创建进程守护服务

(安装DmServiceDMOA.service服务)

指定达梦运行的配置文件

切换root账号

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
su - root
bash /home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -p DMOA -dm_ini /home/dmdba/dmsoft/DAMENG/dm.ini -m open

查看服务是否安装成功

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl list-unit-files | grep DMOA

启用进程守护

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl start DmServiceDMOA.service

查看状态

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl status DmServiceDMOA.service

6 测试连接、其他事项

控制台sql

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /home/dmdba/dmdbms/bin
./disql 账号/密码@localhost:5236

查看监听端口

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
lsof -i tcp:5236

查看开放的端口

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
firewall-cmd --list-ports

停止防火墙

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl stop firewalld

此时设置外网连接,可以查看端口监听情况,最后记得把防火墙关了

最后,服务搭建好后,有三个概念需要了解:

关于表空间概念

1、可以使用一个表空间tableSpace 一个表空间可以支持多个schema 比如main空间,可以建立多个scheme,共用一个账号密码,多个schema来隔离,每个schema对应一个数据库。

2、最好是多个表空间 每个表空间,可以单独创建一个USER ID和密码,然后绑定一个数据库。

表空间、模式、用户之间的关系

在达梦数据库中,模式、表空间和用户之间有以下关系:

1. 模式(Schema):模式是数据库对象的逻辑容器,用于组织和管理数据库中的对象(如表、视图、存储过程等)。一个数据库可以包含多个模式,每个模式下可以包含多个对象。不同模式下的对象可以有相同的名称,但彼此之间是独立的。

2. 表空间(Tablespace):表空间是物理存储的管理单位,用于存储数据库中的数据文件。表空间可以包含一个或多个数据文件,而数据文件则用于存储表、索引和其他数据库对象的实际数据。每个表空间都有一个唯一的名称,通过表空间可以对数据库中的数据进行逻辑和物理上的组织。

3. 用户(User):用户是数据库的访问单位,每个用户都有自己独立的身份和权限。用户可以创建和拥有自己的模式,也可以在其他模式中创建对象。每个用户可以通过用户名和密码进行登录,并且只能访问自己有权限的对象。

总结起来,模式用于逻辑上的组织和管理数据库对象,表空间用于物理存储数据文件,而用户则是访问和管理数据库的单位。在达梦数据库中,一个用户可以拥有一个或多个模式,每个模式可以分配一个或多个表空间用于存储数据。不同用户之间通过权限控制来保证数据的安全性和隔离性。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-03-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 NetCore 从壹开始 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python 运算符与数据类型
运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算,在Python中运算符大致可以分为7种类型:算术运算符、比较运算符、赋值运算符、逻辑运算符、位运算等,下面的例子将依次介绍这几种运算符的使用技巧.
王瑞MVP
2022/12/28
1.9K0
条件语句/变量和基本数据类型
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647   在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
py3study
2020/01/17
2K0
Python基础之数据类型详解
数字类型与其他编程语言类似,这里不再具体讲解。作为Python中最重要的基础知识,下面主要梳理下字符串、列表、元组、字典、集合的核心知识点。
吾非同
2020/10/13
1K0
python初级:基础知识学习-变量、数据类型、运算符、选择结构
变量是程序中临时存储数据的容器。 变量的赋值:向变量中存储数据 语法:变量名称 = 数据 python代码中,出现了等号~通常情况就是向左边的变量中存储数据 变量作为一个容器,对于数据的操作一般只有四种:增加、删除、修改、查询
全栈程序员站长
2021/09/26
5900
基本数据类型(二)
  列表是 Python 最常用的数据类型,它是有序元素的集合,元素之间以逗号分隔,用中括号括起来,可以是任何数据类型。同时它也是一种序列,支持索引、切片、加、乘和成员检查等。
py3study
2020/01/16
6780
Python--4 基本数据类型
  字符串str是在Python编写程序过程中,最常见的一种基本数据类型。字符串是许多单个子串组成的序列,其主要是用来表示文本。字符串是不可变数据类型,也就是说你要改变原字符串内的元素,只能是新建另一个字符串。
py3study
2020/01/19
9540
Python--4 基本数据类型
python数据类型,格式话输出
 一.程序交互 name = input(“你的名字是:”) #用户输入,输入的任何东西都存储成str(字符串类型)的形式 二.注释的重要性   以后动辄几千行代码的时候,回过头再去看的时候,发现自己都看不懂了,在工作中还会大家一起合作完成代码,不写注释的话,更难以交流了。 单行注释直接在句首写上#就好了 多行注释可用快捷键ctrl+/,或者用三个引号括起来''' 99999999                          12345789                      
py3study
2020/01/19
1.3K0
Python知识点(史上最全)
type()不会认为子类是一种父类类型。 isinstance()会认为子类是一种父类类型
全栈程序员站长
2022/08/27
8360
Python知识点(史上最全)
python数据类型
代码注释分单行和多行注释, 单行注释用#,多行注释可以用三对双引号"""  """
py3study
2020/01/19
5690
【Python】从基础变量类型到各种容器(列表、字典、元组、集合、字符串)
反向索引:从-1开始,-1代表最后一个,-2代表倒数第二个,以此类推,第一个是-len(s)。
杨丝儿
2022/02/17
2.4K0
【Python】从基础变量类型到各种容器(列表、字典、元组、集合、字符串)
02 . Python之数据类型
变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。 因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符.
iginkgo18
2020/09/27
1.8K0
02 . Python之数据类型
python 基础 数据类型
1、变      量:变量是计算机内存中的一块儿区域,变量可以存储规定范围内的值,而且值可以改变。
py3study
2020/01/07
6670
基本数据类型、输入输出、运算符
数据类型值是变量值的类型,变量值之所以区分类型,是因为变量值是用来记录事物状态的,而事物的状态有不同的种类,对应着,也必须使用不同类型的值去记录它们。
py3study
2020/01/17
5910
python_列表_元组_字典
insert(index, object) 在指定位置index前插入元素object
以某
2023/03/07
2.4K0
python_列表_元组_字典
​Python数据类型
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
PayneWu
2020/12/18
7480
Python基础(三) | Python的组合数据类型
d.get(key,default) 从字典d中获取键key对应的值,如果没有这个键,则返回default
timerring
2022/09/27
2.7K0
Python基础(三) | Python的组合数据类型
python3_03.数据类型
  Python中的字符串用单引号(')或双引号(")括起来,同时使用反斜杠(\)转义特殊字符。
py3study
2020/01/03
5960
python基础--数据类型
在Python3中有六个标准的数据类型:Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Set(集合)、Dictionary(字典),
ypoint
2019/08/15
1.6K1
Python入门(三):数据结构
切换list[begin:end],获取切换list内元素,从begin开始,至end结束,不包含end
披头
2019/12/26
1.1K0
第一章 python入门
                                        2.获取用户名跟密码,如果用户名是:root  密码是:root 提示正确登录,否则登录失败
py3study
2020/01/17
6270
相关推荐
Python 运算符与数据类型
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验