当前位置: 首页 > news >正文

达梦数据库linux安装

1、官方地址

武汉达梦数据库股份有限公司

2、下载

 

3、安装

单机安装部署 | 达梦技术文档

产品手册 | 达梦技术文档

linux安装 

创建安装用户

为了减少对操作系统的影响,用户不应该以 root 系统用户来安装和运行 DM。用户可以在安装之前为 DM 创建一个专用的系统用户。可参考以下示例创建系统用户和组(并指定用户 ID 和组 ID),具体细节可向系统管理员咨询。

1.创建安装用户组 dinstall。

groupadd -g 12349 dinstall

2.创建安装用户 dmdba。

useradd -u 12345 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
  • useradd:这是 Linux 系统中用于创建新用户的命令。
  • -u 12345:指定新建用户的 UID(用户标识符)为 12345。UID 是系统用于标识用户的唯一数字,每个用户在系统中都有一个唯一的 UID。
  • -g dinstall:指定新建用户的主用户组为 dinstall。用户组是一种将用户进行分组管理的方式,用户可以属于一个或多个用户组,这里指定了 dmdba 用户的主用户组为 dinstall。
  • -m:自动创建用户的家目录。通常,每个用户都有一个属于自己的家目录,用于存储个人文件和配置等信息。
  • -d /home/dmdba:指定用户的家目录为 /home/dmdba。即新用户 dmdba 的家目录将被设置在这个路径下。
  • -s /bin/bash:指定用户登录后使用的默认 shell 为 /bin/bash。shell 是用户与操作系统内核之间的交互界面,/bin/bash 是一种常见的 shell 程序。
  • dmdba:要创建的用户名。在系统中,用户名是用于标识用户身份的字符串,用户使用这个名称来登录系统等。

3.初始化用户密码。

passwd dmdba

4.之后通过系统提示进行密码设置。

注意:创建安装系统用户完成后,安装手册之后的操作默认使用安装系统用户进行操作。

授权文件夹

chown -R dmdba:dinstall /data/dm

上传文件

将DMInstall.bin上传到服务器,授权

chmod +x DMInstall.bin

安装数据库

执行安装命令
DMInstall.bin -i
选择安装语言
Installer Language: 
[1]: 简体中文
[2]: English
Please select the installer's language [2]:1
解压安装程序......... 
欢迎使用达梦数据库安装程序
验证 key 文件

可以选择是否输入 Key 文件路径。不输入则进入下一步安装,输入 Key 文件路径,安装程序将显示 Key 文件的详细信息,如果是合法的 Key 文件且在有效期内,可以继续安装。如下所示:

是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:Y
请输入Key文件的路径地址 [dm.key]:/opt/setup/dm.key
有效日期: 2024-06-25
服务器颁布类型: 企业版
发布类型: 试用版
用户名称: 达梦公司产品试用
授权用户数: 无限制
并发连接数: 无限制
输入时区

可以选择的时区信息。如下所示:

是否设置时区? (Y/y:是 N/n:否) [Y/y]:Y
设置时区:
[ 1]: GTM-12=日界线西
[ 2]: GTM-11=萨摩亚群岛
[ 3]: GTM-10=夏威夷
[ 4]: GTM-09=阿拉斯加
[ 5]: GTM-08=太平洋时间(美国和加拿大)
[ 6]: GTM-07=亚利桑那
[ 7]: GTM-06=中部时间(美国和加拿大)
[ 8]: GTM-05=东部部时间(美国和加拿大)
[ 9]: GTM-04=大西洋时间(美国和加拿大)
[10]: GTM-03=巴西利亚
[11]: GTM-02=中大西洋
[12]: GTM-01=亚速尔群岛
[13]: GTM=格林威治标准时间
[14]: GTM+01=萨拉热窝
[15]: GTM+02=开罗
[16]: GTM+03=莫斯科
[17]: GTM+04=阿布扎比
[18]: GTM+05=伊斯兰堡
[19]: GTM+06=达卡
[20]: GTM+07=曼谷,河内
[21]: GTM+08=中国标准时间
[22]: GTM+09=汉城
[23]: GTM+10=关岛
[24]: GTM+11=所罗门群岛
[25]: GTM+12=斐济
[26]: GTM+13=努库阿勒法
[27]: GTM+14=基里巴斯
请选择设置时区 [21]:21
选择安装类型

数据库软件安装程序提供四种安装方式:“典型安装”、“服务器安装”、“客户端安装”和“自定义安装”,用户可根据实际情况灵活地选择。如下所示:

典型安装包括:服务器、客户端、驱动、用户手册、数据库服务。
服务器安装包括:服务器、驱动、用户手册、数据库服务。
客户端安装包括:客户端、驱动、用户手册。
自定义安装包括:用户根据需求勾选组件,可以是服务器、客户端、驱动、用户手册、数据库服务中的任意组合。
生产环境可以根据实际需求选择,一般情况下选择"典型安装"即可。

安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:1
所需空间: 2201M
选择安装路径

输入数据库软件的安装路径,不输入则使用默认路径,默认路径为 $HOME/dmdbms (如果安装用户为 root ,则默认安装路径为 /opt/dmdbms ,但不建议使用 root 系统用户来安装)。如下所示: 

请选择安装目录 [/home/dmdba/dmdbms]:/data/dm/data
可用空间: 9G

注意

安装路径里的目录名由英文字母、数字和下划线等组成,不建议使用包含空格和中文字符等的路径。

安装小结

安装程序将打印用户之前输入的部分安装信息。如下所示: 

是否确认安装路径(/opt/dmdbms)? (Y/y:是 N/n:否)  [Y/y]:Y
安装前小结
安装位置: /opt/dmdbms
所需空间: 2201M
可用空间: 9G
版本信息: 企业版
有效日期: 2024-06-25
安装类型: 典型安装
注册数据库服务

当安装进度完成时将会弹出对话框,提示使用 root 系统用户执行相关命令。用户可根据对话框的说明完成相关操作,之后可关闭此对话框,点击“完成”按钮结束安装。如下所示:

[dmdba@~]# su - root
密码:<输入密码>
[root@~]# /data/dm/data/script/root/root_installer.sh
移动 /opt/dmdbms/bin/dm_svc.conf 到/etc目录
创建DmAPService服务
Created symlink /etc/systemd/system/multi-user.target.wants/DmAPService.service → /usr/lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动DmAPService服务

初始化数据库示例

初始化过程

初始化实例的示例如下:设置页大小(PAGE_SIZE)为 32,日志大小(LOG_SIZE)为 2048,大小写(CASE_SENSITIVE)为敏感,字符集(CHARSET)为 GB18030。

如需更改其它参数,请参考安装路径 doc 目录下的《dminit 使用手册》。

[dmdba@host-172-18-93-251 data]$ /data/dm/data/bin/dminit PATH=/data/dm/data/data PAGE_SIZE=32 LOG_SIZE=2048 CHARSET=0 CASE_SENSITIVE=Y SYSDBA_PWD="123456" SYSAUDITOR_PWD="123456"
initdb V8
db version: 0x7000d
License will expire on 2025-06-25
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLLlog file path: /data/dm/data/data/DAMENG/DAMENG01.loglog file path: /data/dm/data/data/DAMENG/DAMENG02.logwrite to dir [/data/dm/data/data/DAMENG].
  • CHARSET/UNICODE_FLAG:字符集选项。取值:0 代表 GB18030,1 代表 UTF-8,2 代表韩文字符集 EUC-KR。默认为 0。可选参数。
    • GB18030 编码向下兼容 GBK 和 GB2312,兼容的含义是不仅字符兼容,而且相同字符的编码也相同。GB18030 收录了所有 Unicode3.1 中的字符,包括中国少数民族字符,GBK 不支持的韩文字符等等,也可以说是世界大多民族的文字符号都被收录在内。
    • Unicode Transformation Format-8bit 是用以解决国际上字符的一种多字节编码。它对英文使用 8 位(即一个字节),中文使用 24 为(三个字节)来编码。UTF-8 包含全世界所有国家需要用到的字符,是国际编码,通用性强。UTF-8 编码的文字可以在各国支持 UTF8 字符集的浏览器上显示。
    • 建议采用默认值 GB18030,如果需要国际字符可以采用 Unicode。GB18030 数字字母占 1 个字节,普通汉字占 2 个字节,部分繁体及少数民族文字占 4 字节。Unicode 在达梦中采用 UTF-8 编码格式,欧洲的字母字符占 1 到 2 个字节,亚洲的大部分字符占 3 个字节,附加字符为 4 个字节。如果只存储中文和字母数字,一般来说 GB18030 更节省空间一些。生产环境中该参数可依据用户实际需求进行指定。 

注意

1、实际环境中,簇大小建议选择 32页,页大小选择 32K,日志大小选择 2048M,字符集和大小写敏感需要根据实际业务需求进行设置。
2、强烈建议用户在初始化时,立即修改数据库系统用户初始密码,并设置一定的密码强度,以保障数据安全性。

创建实例服务
[dmdba@dmdsc03 ~]$  su - root
密码:<输入密码>
[root@~]# /data/dm/data/script/root/dm_service_installer.sh -t dmserver -dm_ini /data/dm/data/data/DAMENG/dm.ini -p DMSERVER
Created symlink /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service → /usr/lib/systemd/system/DmServiceDMSERVER.service.
创建服务(DmServiceDMSERVER)完成
 启动实例服务
[dmdba@dmdsc03 ~]$ /data/dm/data/bin/DmServiceDMSERVER start
Starting DmServiceDMSERVER:                                [ OK ]

配置防火墙

默认就可以远程访问,只需要开通防火墙即可。

# 开放 5236 端口
firewall-cmd --zone=public --add-port=5236/tcp --permanent
# 重新加载防火墙规则
firewall-cmd --reload

4、创建数据库

创建和配置 DM 数据库 | 达梦技术文档

5、DM管理工具

新建模式

新建连接

新建模式

导入/导出

导出

  • 可以导出所有模式
  • 可以只导出一个模式

导入

 导入成功

6、达梦和mysql的区别

  • mysql
    • 库(DATABASE
      • 独立的存储单元,用于组织和存储表和其他对象
    • 字段
  • 达梦
    • 模式(SCHEMA
      • 数据库对象的集合,属于某个用户
    • 字段
方面达梦数据库(DM)MySQL
创建数据库CREATE SCHEMA db_name;<br>使用 CREATE SCHEMA 创建数据库。CREATE DATABASE db_name;<br>使用 CREATE DATABASE 创建数据库。
删除数据库DROP SCHEMA db_name;<br>使用 DROP SCHEMA 删除数据库。DROP DATABASE db_name;<br>使用 DROP DATABASE 删除数据库。
创建表sql<br>CREATE TABLE "db_name"."table_name" (<br> "id" INT NOT NULL,<br> "name" VARCHAR(50) NOT NULL,<br> "create_time" DATETIME(0),<br> PRIMARY KEY ("id")<br>) STORAGE(ON "MAIN", CLUSTERBTR);<br>COMMENT ON TABLE "db_name"."table_name" IS '表注释';<br>支持双引号标识表名和字段名,支持 STORAGE 子句指定表空间和存储方式。sql<br>CREATE TABLE `table_name` (<br> `id` INT NOT NULL,<br> `name` VARCHAR(50) NOT NULL,<br> `create_time` DATETIME,<br> PRIMARY KEY (`id`)<br>) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='表注释';<br>使用反引号标识表名和字段名,支持 ENGINE 和 CHARSET
修改表sql<br>ALTER TABLE "db_name"."table_name" MODIFY "column_name" DATETIME(0) NULL;<br>COMMENT ON COLUMN "db_name"."table_name"."column_name" IS '字段注释';<br>修改字段后需要单独用 COMMENT ON COLUMN 添加字段注释。sql<br>ALTER TABLE table_name MODIFY COLUMN `column_name` DATETIME NULL COMMENT '字段注释';<br>字段注释可以直接在 MODIFY COLUMN 中指定。
删除表DROP TABLE "db_name"."table_name";<br>使用双引号标识表名。DROP TABLE table_name;<br>表名无需引号(除非包含特殊字符)。
字段定义- 字段名可以使用双引号,支持关键字作为字段名。<br>- DATETIME 类型默认精度为 6 位,建议使用 DATETIME(0)。<br>- 不支持字段类型长度(如 INT(10)),直接使用 INT- 字段名可以使用反引号,支持关键字作为字段名。<br>- DATETIME 类型不需要指定精度。<br>- 支持字段类型长度(如 INT(10)),但实际存储长度不受影响。
字段注释使用 COMMENT ON COLUMN 单独添加字段注释。在 CREATE TABLE 或 ALTER TABLE 中直接指定字段注释。
其他特性- 支持 NLSSORT 函数用于拼音排序。<br>- 不支持在 SELECT 中直接使用比较运算符。- 支持在 SELECT 中使用比较运算符。<br>- 支持 CONVERT 函数用于排序。

7、spring boot连接

官方文档:DM JDBC 编程指南 | 达梦技术文档

引入依赖

<!--达梦start-->
<dependency><groupId>com.dameng</groupId><artifactId>DmJdbcDriver11</artifactId><version>${DmJdbcDriver11.version}</version>
</dependency>
<!--达梦end-->

1. DmJdbcDriver6     实现JDBC 4.0标准接口,已在JDK6上验证相关功能
2. DmJdbcDriver7     实现JDBC 4.1标准接口,已在JDK7上验证相关功能
3. DmJdbcDriver8     实现JDBC 4.2标准接口,已在JDK8,JDK11,JDK17上验证相关功能
4. DmJdbcDriver11     部分实现JDBC 4.3标准接口,已在JDK11,JDK17,JDK21上验证相关功能 

使用mybatis plus 

引入依赖

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>${mybatis-plus.version}</version>
</dependency>

配置类

package com.ybw.config;import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** mybatis plus 配置类** @author ybw* @version V1.0* @className MybatisPlusConfig* @date 2025/6/27**/
@Configuration
@MapperScan("com.ybw.mapper")
public class MybatisPlusConfig {/*** mybatis plus插件配置** @methodName: mybatisPlusInterceptor* @return: com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor* @author: ybw* @date: 2025/6/27**/@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.DM));return interceptor;}}

代码生成器

package com.ybw.generator;import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.converts.DmTypeConvert;
import com.baomidou.mybatisplus.generator.config.querys.DMQuery;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.config.rules.IColumnType;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;import java.util.Collections;
import java.util.List;/*** 生成代码** @author ybw* @version V1.0* @className DmGenerator* @date 2025/2/21**/
public class DmGenerator {/*** 表名** @author: ybw* @date: 2025/6/20**/private static final List<String> TABLE_LIST = List.of("person");public static void main(String[] args) {//1、数据库配置DataSourceConfig.Builder dataSourceConfig = new DataSourceConfig.Builder("jdbc:dm://localhost:5236/TEST", "SYSDBA", "Uw123123").dbQuery(new DMQuery()).typeConvert(new DmTypeConvert() {@Overridepublic IColumnType processTypeConvert(GlobalConfig config, String fieldType) {if (fieldType.toLowerCase().contains("tinyint")) {//tinyint转Integerreturn DbColumnType.INTEGER;}if (fieldType.toLowerCase().contains("bit")) {return DbColumnType.INTEGER;}return super.processTypeConvert(config, fieldType);}});String projectPath = System.getProperty("user.dir");//生成路径(一般都是生成在此项目的src/main/java下面)FastAutoGenerator.create(dataSourceConfig).globalConfig(builder -> {// 设置作者builder.author("ybw")// 指定输出目录.outputDir(projectPath + "/src/main/java");}).packageConfig(builder -> {// 设置父包名builder.parent("com.ybw")// 设置mapperXml生成路径.pathInfo(Collections.singletonMap(OutputFile.xml, projectPath + "/src/main/resources/mapper"));}).strategyConfig(builder -> {// 设置需要生成的表名,多个英文逗号分隔?所有输入 allbuilder.addInclude(TABLE_LIST).serviceBuilder().formatServiceFileName("%sService")//enableColumnConstant:开启生成字段常量.entityBuilder().idType(IdType.AUTO).enableLombok().enableFileOverride().mapperBuilder().enableBaseResultMap().enableBaseColumnList().enableFileOverride();})// 使用Freemarker引擎模板,默认的是Velocity引擎模板.templateEngine(new FreemarkerTemplateEngine()).execute();}}

http://www.lqws.cn/news/605629.html

相关文章:

  • 飞算 JavaAI 智控引擎:全链路开发自动化新图景
  • 自动化Docker容器化安装与配置工具介绍
  • 7月2日星期三今日早报简报微语报早读
  • Intellij IDEA 2023的下载和安装
  • Servlet开发流程(包含IntelliJ IDEA项目添加Tomcat依赖的详细教程)
  • 【技术前沿:飞算JavaAI如何用AI引擎颠覆传统Java开发模式】
  • 香港券商交易系统开发与解决方案全景报告:云原生、跨境协同与高性能架构的创新实践
  • 开源计算机视觉的基石:OpenCV 全方位解析
  • 解决 npm install canvas@2.11.2 失败的问题
  • 【公司环境下发布个人NPM包完整教程】
  • 算法笔记上机训练实战指南刷题
  • vue-36(为组件编写单元测试:属性、事件和方法)
  • Docker Dify安装 完整版本
  • 客服机器人知识库怎么搭?智能客服机器人3种方案深度对比(含零售落地案例)
  • (一)大语言模型的关键技术<-AI大模型构建
  • 【安卓Sensor框架-3】Sensor事件上报流程
  • Binder机制与实现原理解析
  • HTTP 协议深入理解
  • HCIA-实现VLAN间通信
  • 可观测领域的王者Dynatrace的故障定位体验
  • Selenium自动化测试网页加载太慢如何解决?
  • 楚存科技SD NAND贴片式T卡—高性能存储解决方案、赋能AI智能硬件
  • 软件反调试(2)- 基于窗口列表的检测
  • javaWeb02-Tomcat
  • 一些ubuntu命令记录(持续补充)
  • Harbor镜像仓库修改端口号密码
  • HarmonyOS 页面路由Router切换组件导航Navigation
  • 操作系统考试大题-处理机调度算法-详解-2
  • 【GHS】Green Hills软件MULTI-IDE的安装教程
  • 文心快码答用户问|Comate AI IDE专场