在 macOS 上通过 Docker 部署DM8 (ARM 架构)

概述

达梦数据库 (DM8) 无法直接在 Apple macOS 操作系统上原生安装,通常需要通过虚拟机(如 Parallels DesktopVMware Fusion)进行部署。另一种更轻量级且受 macOS 支持的方案是利用 Docker 容器技术来构建开发与测试环境。本文档将详细介绍如何在搭载 Apple Silicon 芯片 (ARM 架构) 的 macOS 上,通过 Docker Desktop 安装并运行达梦数据库 DM8

Docker Desktop 安装与配置

  1. 软件下载:
    • 访问 Docker 官方网站下载 Docker Desktop:https://www.docker.com/products/docker-desktop/。

  • 注意: 国内用户可能无法直接访问官网,请确保网络环境允许访问。
  • 下载完成后,选择适用于 Apple silicon (ARM64) 的安装包。

  1. 安装步骤:
    • 双击下载的 .dmg 文件。
    • 将 Docker 图标拖拽到 Applications 文件夹中完成安装。

+ 在应用程序文件夹中找到并启动 Docker Desktop。+ 首次启动时,通常会提示登录 Docker Hub 账户,可选择 跳过 (Skip) 此步骤进行基本使用。

  1. 基本验证:
    • 安装完成后,可通过系统终端 (Terminal) 或 Docker Desktop 自带的终端执行 Docker 命令进行验证(例如 docker --version)。

  • Docker Desktop 界面可直观管理容器和镜像。

导入达梦 DM8 Docker 镜像

  1. 加载镜像文件:
    • 达梦数据库 DM8 的 Docker 镜像文件(如 dm8_20241230_HWarm_kylin10_64_rq_ent_8.1.4.6_pack20.tar)。
    • 在终端中使用 docker load 命令导入镜像:
docker load -i dm8_20241230_HWarm_kylin10_64_rq_ent_8.1.4.6_pack20.tar
- 终端将显示加载过程及最终镜像信息(镜像 ID、标签等)。
rgy@MacBook-Air Downloads % docker load -i dm8_20241230_HWarm_kylin10_64_rq_ent_8.1.4.6_pack20.tar
353c81134611: Loading layer [==================================================>]  68.13MB/68.13MB
a2a1ef173d3f: Loading layer [==================================================>]  13.81MB/13.81MB
3bf081f10a0a: Loading layer [==================================================>]   25.6kB/25.6kB
57a258bbc540: Loading layer [==================================================>]  10.74MB/10.74MB
c6a50133aad7: Loading layer [==================================================>]    693MB/693MB
a968f06b1730: Loading layer [==================================================>]   2.56kB/2.56kB
e7e89f098e9a: Loading layer [==================================================>]   2.56kB/2.56kB
a08640b6af93: Loading layer [==================================================>]   2.56kB/2.56kB
3acf0a3d1475: Loading layer [==================================================>]   5.12kB/5.12kB
6886d5000ac7: Loading layer [==================================================>]   5.12kB/5.12kB
3871deeeb66b: Loading layer [==================================================>]  4.608kB/4.608kB
0d53b70e744c: Loading layer [==================================================>]  3.072kB/3.072kB
a4398027ff10: Loading layer [==================================================>]  15.36kB/15.36kB
3f422d2e61a6: Loading layer [==================================================>]  15.36kB/15.36kB
c827a1081359: Loading layer [==================================================>]   2.56kB/2.56kB
f2e33479badf: Loading layer [==================================================>]   2.56kB/2.56kB
3d6384cf4028: Loading layer [==================================================>]  4.096kB/4.096kB
df481b01e958: Loading layer [==================================================>]  4.096kB/4.096kB
f2e1e05adddb: Loading layer [==================================================>]  4.096kB/4.096kB
Loaded image: dm8:dm8_20241230_rev255012_HWarm_kylin10_64
rgy@MacBook-Air Downloads %
  1. 确认镜像导入成功:
    • 使用 docker images 命令查看本地镜像列表,确认 DM8 镜像已存在:
docker images
# 输出示例:
# REPOSITORY   TAG                                       IMAGE ID       CREATED        SIZE
# dm8          dm8_20241230_rev255012_HWarm_kylin10_64   51453ae9e0ea   7 months ago   782MB

部署 DM8 单机实例

  1. 启动容器命令
    • 使用 docker run 命令启动一个运行 DM8 的容器。务必设置满足复杂度要求的系统管理员 (SYSDBA) 和安全管理员 (SYSAUDITOR) 密码,否则容器可能启动失败。

    • 关键参数说明:

      • -d: 后台运行容器。
      • -p 30236:5236: 将容器内部的 DM8 数据库默认端口 (5236) 映射到宿主机的 30236 端口。
      • --restart=always: 容器退出时自动重启。
      • --name dm8_test: 为容器命名。
      • --privileged=true: 赋予容器较高权限(通常用于数据库容器)。
      • -e : 设置环境变量。
        • MODE=dmsingle: 单机模式。
        • PAGE_SIZE=16: 数据库页大小 (16K)。
        • CASE_SENSITIVE=1: 标识符大小写敏感。
        • UNICODE_FLAG=1: 启用 Unicode 支持。
        • SYSDBA_PWD=Dameng_123: 系统管理员 (SYSDBA) 密码 (请使用强密码)。
        • SYSAUDITOR_PWD=Dameng_123: 安全管理员 (SYSAUDITOR) 密码 (请使用强密码)。
        • LD_LIBRARY_PATH=/opt/dmdbms/bin: 库文件路径。
        • INSTANCE_NAME=dm8_8146: 实例名称。
      • -v: 挂载数据卷。
        • -v /Users/rgy/dmdata:/opt/dmdbms/data: 将宿主机的 /Users/rgy/dmdata 目录挂载到容器内的数据库数据目录 (强烈建议用于持久化数据)。
        • -v dm8:/opt/dmdbms/log: 使用 Docker 管理的卷 dm8 挂载到日志目录 (也可使用主机路径)。
      • dm8:dm8_20241230_rev255012_HWarm_kylin10_64: 指定使用的镜像及标签。
    • 完整启动命令示例:

docker run -d \-p 30236:5236 \--restart=always \--name dm8_test \--privileged=true \-e MODE=dmsingle \-e PAGE_SIZE=16 \-e CASE_SENSITIVE=1 \-e UNICODE_FLAG=1 \-e SYSDBA_PWD=Dameng_123 \-e SYSAUDITOR_PWD=Dameng_123 \-e LD_LIBRARY_PATH=/opt/dmdbms/bin \-e INSTANCE_NAME=dm8_8146 \-v /Users/rgy/dmdata:/opt/dmdbms/data \-v dm8:/opt/dmdbms/log \dm8:dm8_20241230_rev255012_HWarm_kylin10_64
  1. 监控启动日志:
    • 容器启动后,可通过 Docker Desktop 的图形界面查看容器日志,确认数据库初始化是否成功。

  • 成功初始化后,可在挂载的主机目录 /Users/rgy/dmdata 下看到数据库文件:

连接与验证数据库

  1. 通过容器终端连接:
    • 使用Docker Desktop 进入 dm8_test 容器的终端界面。

  • 在容器内使用达梦命令行工具 disql 连接数据库:
cd /opt/dmdbms/bin
./disql SYSDBA/Dameng_123@localhost:5236
  • 执行 SQL 查询验证实例信息(如 SELECT * FROM V$INSTANCE;)。

  1. 使用图形化管理工具 (SQLark):

由于官方达梦管理工具 (DM Manager) 暂无 macOS 版本,可使用 SQLark(https://www.sqlark.com) 工具进行连接管理。

  • 在 SQLark 中新建达梦数据库连接:

主机 (Host): localhostDocker 宿主机的 IP (如果从宿主机外部连接)。

端口 (`Port`): `30236` (即 Docker 映射的宿主机端口)。
用户名 (`Username`): `SYSDBA`
密码 (`Password`): `Dameng_123`
数据库 (`Database`): 通常可留空或尝试 `SYSDBA` (具体根据连接要求)。
  • 填写正确信息后即可连接成功,进行数据库管理操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/91722.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/91722.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络协议之路由是怎么回事?

写在前面 要想去外面的世界看看, 就离不了路由器,而路由器工作的原理就是路由,那么具体是怎么路由的呢?本文就一起来看下这部分内容。 1:路由的配置 配置一条路由无非就是在配置以下三个信息: 1:包要去哪里&#x…

2106. 摘水果,梳理思路

文章目录题目概要java 解法详解题目概要 在一个无限的 x 坐标轴上,有许多水果分布在其中某些位置。给你一个二维整数数组 fruits ,其中 fruits[i] [positioni, amounti] 表示共有 amounti 个水果放置在 positioni 上。fruits 已经按 positioni 升序排列…

深入理解消息队列(MQ)核心原理与设计精髓

引言:从一个“不堪重负”的订单系统说起想象一个简化的电商下单流程:用户点击“下单”后,系统需要:在订单数据库中创建一条记录。调用库存服务,扣减商品库存。调用营销服务,给用户发放积分和优惠券。调用通…

前端手撕题总结篇(算法篇——来自Leetcode牛客)

链表指定区域反转 找到区间(头和为 for循环当**时)->反转链表(返回反转过后的头和尾)->连接 function reverseBetween( head , m , n ) {//preEnd&cur&nextStart cur.next断开if(mn)return head;const vHeadNode…

从Excel到工时管理系统:企业如何选择更高效的工时记录工具?

还在为手工统计员工工时而头疼吗?月末堆积如山的Excel表格、反复核对的数据、层出不穷的差错,这些问题正在拖慢企业的发展步伐。8Manage工时管理系统发现,传统手工记录不仅耗费大量人力,更让宝贵的工时数据难以转化为有效的管理决…

Java设计模式之《命令模式》

目录 1、介绍 1.1、命令模式定义 1.2、对比 1.3、典型应用场景 2、命令模式的结构 2.1、组成部分: 2.2、整体流程 3、实现 3.1、没有命令模式 3.2、命令模式写法 4、命令模式的优缺点 前言 java设计模式分类: 1、介绍 1.1、命令模式定义 命…

【动态规划算法】路径问题

什么是动态规划算法动态规划(Dynamic Programming,简称 DP)是一种通过分解复杂问题为重叠子问题,并存储子问题的解以避免重复计算,从而高效求解具有特定性质(重叠子问题、最优子结构)问题的算法…

Java基本技术讲解

一、基础语法三要素 暂时无法在飞书文档外展示此内容 🔑 黄金法则​:每个变量都要声明类型!二、程序逻辑控制(游戏行为核心) 条件判断:if-else - “岔路口选择” // 捡到金币逻辑 if (isTouching(Coin.clas…

【网络基础2】路由器的 “两扇门”:二层接口和三层接口到底有啥不一样?

目录 前言:路由器不是只有 “插网线的口” 一、先搞懂一个基础:路由器是 “网络交通枢纽” 二、二层接口:“小区内部的单元门”,只认 “住户身份证” 1. 啥是二层接口? 2. 用 “小区内部串门” 理解二层接口 步骤 1:手机打包数据,写上 “收件人身份证” 步骤 2:二…

MLIR TableGen

简介 TableGen 是一种领域特定语言(DSL),TableGen 的设计目标是允许编写灵活的描述,并将记录的通用特性提取出来,从而减少重复代码并提高代码的可维护性。 TableGen的工作流程: 前端解析: Ta…

2、docker容器命令 | 信息查看

1、命令总览命令作用docker ps查看运行中的容器(-a查看所有容器)docker logs [CONTAINER]查看容器日志(-f实时追踪日志)docker inspect [CONTAINER]查看容器详细信息(JSON格式)docker stats [CONTAINER]实时…

【MySQL】MySQL中锁有哪些?

一、按照粒度分类: 粒度越小,并发度越高,锁开销越大。 1.全局锁: 作用: 锁定整个MySQL实例(所有数据库)。适用场景: 全库逻辑部分。(确保备份期间数据的一致性。)实现方式: 通过 FLUSH TABLES W…

语义分割--deeplabV3+

根据论文网络结构图讲一下:网络分为两部分:encoder和decoder部分。 Encoder:DCNN就是主干网络,例如resnet,Xception,MobileNet这些(主干网络也要使用空洞卷积),对dcnn的结…

Azure DevOps 中的代理

必知词汇 深入研究 Azure DevOps 中的代理之前需要掌握的基本概念: 代理:Azure DevOps 中的代理是一个软件组件,负责执行流水线中的任务和作业。这可能包括数据中心内的物理服务器、本地或云端托管的虚拟机,甚至是容器化环境。这些代理可以在各种操作系统和环境中运行,例如…

AUTOSAR进阶图解==>AUTOSAR_SRS_ADCDriver

AUTOSAR ADC驱动详解 基于AUTOSAR标准的ADC驱动模块需求规范分析目录 ADC驱动模块概述 关键概念定义 ADC驱动架构 ADC驱动在AUTOSAR分层架构中的位置ADC驱动的主要职责 ADC驱动配置结构 通用配置(AdcGeneral)硬件单元配置(AdcHwUnit)通道配置(AdcChannel)通道组配置(AdcChanne…

宝马集团与SAP联合打造生产物流数字化新标杆

在德国雷根斯堡的宝马工厂,每57秒就有一辆新车下线。这座工厂不仅是汽车制造的基地,更是宝马集团向SAP S/4HANA云平台转型的先锋项目。通过“RISE with SAP”计划,宝马将该工厂的运营系统全面迁移至SAP S/4HANA Cloud Private Edition&#x…

Go 语言实战:构建一个高性能的 MySQL + Redis 应用

引言:为什么是 Go MySQL Redis?在现代后端技术栈中,Go MySQL Redis 的组合堪称“黄金搭档”,被广泛应用于各种高并发业务场景。Go 语言:以其卓越的并发性能、简洁的语法和高效的执行效率,成为构建高性能…

Excel超级处理器,多个word表格模板中内容提取到Excel表格中

在职场中,很多人习惯在word里插入表格,设计模板,填写内容,一旦有多个word文件需要整理在excel表格中,最常见的工作方式就是每个word文件打开,复制,粘贴到excel表格里,这样的工作方式…

前端工程化:ES6特性

本文为个人学习笔记整理,仅供交流参考,非专业教学资料,内容请自行甄别 文章目录一、let与var1.1、越狱问题1.2、变量的重复声明1.3、变量提升问题二、解构2.1、数组解构2.2、对象解构2.3、方法解构三、链判断四、参数默认值五、箭头函数六、模…

大屏项目展示

一、项目克隆与基础操作 我们参考的项目 互联网设备可视化平台---IofTV-Screen: 🔥一个基于 vue、datav、Echart 框架的物联网可视化(大屏展示)模板,提供数据动态刷新渲染、屏幕适应、数据滚动配置,内部图表自由替换、Mixins注入等功能,持续更新.... 将次项目克隆到本…