TNBLOG
首页
博客
视频
资源
问答
猿趣
手机
关于
搜索
收藏
便签
笔记
消息
创作
登录
剑轩
人生没有办法假设,我们不能站在后来的角度去责备当时无望、甚至是怯懦、犹豫的自己
博主信息
排名
6
文章
6
粉丝
16
评论
8
文章类别
CSS
15篇
微服务
41篇
Git
14篇
.NET
102篇
移动开发
33篇
软件架构
23篇
.NET Core
118篇
.NET MVC
11篇
英语
3篇
随笔
82篇
Bootstrap
3篇
Redis
21篇
编辑器
10篇
Js相关
15篇
虚拟化
8篇
更多
Oracle
7篇
Python
14篇
数据库
26篇
EF
17篇
微信
3篇
前端
149篇
消息队列
6篇
docker
41篇
多线程
1篇
Java
4篇
软件基础
2篇
C++
2篇
WCF
7篇
Linux
7篇
nginx
5篇
K8S
9篇
ABP
2篇
最新文章
最新评价
{{item.articleTitle}}
{{item.blogName}}
:
{{item.content}}
关于我们
ICP备案 :
渝ICP备18016597号-1
网站信息:
2018-2023
TNBLOG.NET
技术交流:
群号656732739
联系我们:
contact@tnblog.net
欢迎加群
欢迎加群交流技术
原
docker 安装 dm达梦数据库
7161
人阅读
2023/2/28 10:06
总访问:
3517837
评论:
0
收藏:
0
手机
分类:
docker
## 官方文档 https://eco.dameng.com/document/dm/zh-cn/start/dm-install-docker.html ## 下载与加载镜像 下载镜像 ``` wget -O dm8_docker.tar -c https://download.dameng.com/eco/dm8/dm8_20220822_rev166351_x86_rh6_64_ctm.tar ``` 加载镜像 ``` docker load -i dm8_docker.tar ``` 下载与加载后可以查看镜像  ## 启动容器 ``` docker run -d -p 5236:5236 \ --restart=always \ --name dm8_01 \ --privileged=true \ -e CASE_SENSITIVE=0 \ -e UNICODE_FLAG=1 \ -e LENGTH_IN_CHAR=1 \ -e PAGE_SIZE=16 \ -e LD_LIBRARY_PATH=/opt/dmdbms/bin \ -e INSTANCE_NAME=dm8_01 \ -v /data/dm8_01:/opt/dmdbms/data \ dm8_single:v8.1.2.128_ent_x86_64_ctm_pack4 ``` 部分参数解释: >CASE_SENSITIVE=0 设置大小写不敏感 LENGTH_IN_CHAR=1 VARCHAR 类型对象的长度以字符为单位 UNICODE_FLAG 字符集 (0),可选值: 0[GB18030], 1[UTF-8], 2[EUC-KR] **查看容器是否启动起来了**  **查看dm对应容器的日志情况** ``` docker logs 容器名称或者id ```  当看到: Init DM success! Start DmAPService... 一般就会成功了,但是也不一定因为数据库不一定会初始化成功,要看到SYSTEM IS READY才是成功了,日志可以过一会在看内容就会变化,看是否能看到SYSTEM IS READY.。`有可能遇到问题,比如什么内存不足,硬盘不足等问题,数据库要求的服务器资源还是有点多` ## 进入容器,登录数据库 进入容器 ``` docker exec -it dm8_01 bash ``` 切换到/opt/dmdbms/bin目录 ``` cd /opt/dmdbms/bin ``` 然后执行登录命令 ``` ./disql SYSDBA/SYSDBA001 ``` 一次成功效果如下:  这个版本的Docker镜像中数据库默认用户名/密码为 SYSDBA/SYSDBA001。如果使用命令登录没有成功,提示用户名密码失败,就自己自己输入用户密码就行了。比如我这里故意把命令登录的用户名密码输入错误,他就会让你重新输入账号密码:  #### 测试远程连接 他这个管理员账户居然可以直接远程连接这个是没有想到的,还以为要设置一堆东西也,方便倒是很方便,不过感觉好像不是很安全诶。 <img src="https://img.tnblog.net/arcimg/aojiancc2/a749a810b5da46e8865070345dbc2e9c.png" width="200px"> ## dm数据库容器里边的目录结构,比如日志文件,数据库文件等 可以先切换到容器里边的dmdbms目录里边看看 ``` cd /opt/dmdbms/ ```  可以看到里边有bin,conf,data,log这些比较重要的文件夹。比如log里边就是日志,data里边存放的就是数据 #### 进入log文件夹里边查看日志 可以看到里边还是有很多日志的,这里我们可以查看一下dm_DMSERVER_202302.log这个日志,应该就是dm数据库的运行日志  里边内容比较多,这里随便截一点,像这种SYSTEM IS READY. 启动正常的时候会看到。  #### 进入data文件夹里边可以看到数据库的初始化脚本等 ``` cd /opt/dmdbms/data ```  ## 常用错误解决 #### 查看日志出现 Database first startup failed, reinitialize database please! 日志一直提示:DM Database is not OK, please wait...,并且后面出现Database first startup failed, reinitialize database please! 首先要确保你安装的服务器存储要足够,然后还有就是挂载目录的问题要注意,比如你前面因为内存不够等原因出现过启动失败,然后调整好了在删除容器后重新启动容器遇到这个错,就有可能是前面挂载一次了,但是没有初始化成功,这个时候就可以把前面挂载的目录删除掉在启动。 比如我们挂载目录是这个:/data/dm8_01。那么我们进入data目录去把dm8_01干掉  干掉后重启就可以了 #### 登录遇到错误?Create SOCKET connection failure 这种情况就是数据库没有成功启动,要么就是服务没有启动,要么就是数据库没有初始化成功。没有启动成功的情况可以参考是不是遇到上面的问题,具体问题查看日志分析。 ## 使用docker-compose 安装 创建docker-compose.yml,写入内容 ``` version: '3' services: dm8: image: dm8_single:v8.1.2.128_ent_x86_64_ctm_pack4 container_name: dm8 environment: # 时区上海 TZ: Asia/Shanghai LD_LIBRARY_PATH: "/opt/dmdbms/bin" # SYSDBA_PWD: "SYSDBA001" # 默认密码就是SYSDBA001 这里修改默认密码不一定会起效,需要进数据库改 ports: - "5236:5236" volumes: - ./data/dm8/data:/opt/dmdbms/data # restart: always networks: - my_net_dm deploy: resources: limits: memory: 1000M reservations: # cpus: 0.8 memory: 1000M networks: my_net_dm: driver: bridge ipam: config: - subnet: 172.30.0.0/16 ``` 启动与停止 ``` docker-compose up -d docker-compose down ```
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
👈{{preArticle.title}}
👉{{nextArticle.title}}
评价
{{titleitem}}
{{titleitem}}
{{item.content}}
{{titleitem}}
{{titleitem}}
{{item.content}}