暂无图片
如何使用Docker部署MogDB,并且是创建的数据库兼容模式B
我来答
分享
xinyuzxx
2025-02-21
如何使用Docker部署MogDB,并且是创建的数据库兼容模式B

我下载了5.0.9的MogDB镜像到我本地,然后运行执行了命令

docker run --name mogdb --privileged=true -d -e GS_NODENAME=myMogDB -e GS_USERNAME=root -e GS_PASSWORD=Enmo@123 -e DBCOMPATIBILITY=B  -v /home/mogdb:/var/lib/mogdb -p 5432:5432 harbor.xx.cn/mogdb/mogdb:5.0.9


我想实现的效果:

1. 创建一个数据库myMogDB

2. 用户名为root

3. 密码为Enmo@123

4. 兼容模式为B(Mysql)

5. 使用root/Enom@123这个账号可以执行增删改查(主要是表、视图、存储过程)


但是执行后,使用“SHOW sql_compatibility;”语句查到的结果一致是“A”,是不能直接用环境变量创建吗?

另外,下面是我用root连接后看到的数据库内容,没有myMogDB的数据库。是缺少什么操作吗?


在网上查过了,有说环境变量加“- SQL_COMPATIBILITY=MYSQL”的,我试了没有效果;进容器后,在/usr/local/bin/entrypoint.sh文件里看到初始化数据库出用了“$DBCOMPATIBILITY”,改了后还是不行。

麻烦各位帮忙看下什么原因,或者应该怎么操作,十分感谢!

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
DarkAthena
  • 方法1,启动容器后,连接数据库,手动创建一个B兼容模式的库
docker exec -it mogdb /bin/bash
su - omm
gsql -r -d postgres
create database myMogDB dbcompatibility ='B';
  • 方法2,修改开源的docker构建脚本,在create database语句的地方加上兼容性指定,然后重新构建docker镜像
    https://gitee.com/enmotech/enmotech-docker-mogdb
暂无图片 评论
暂无图片 有用 1
暂无图片
xinyuzxx
题主
2025-02-21
你好,感谢你的回答。使用方法1解决问题了。 另外,想问下,如果使用方法2,又不想在entrypoint.sh中兼容性写死,还想通过环境变量的方式传进去,该怎么修改呢?修改后如何执行操作?必须在ubuntu:20.04上执行吗?
DarkAthena

entrypoint.sh是个shell文件,可以参考下你运行的docker命令中的这些用-e方式指定的参数,找找这些参数在哪些地方用到了,是怎么用的,就可以仿照着自己加一个新的参数。
能执行docker命令的环境一般都可以执行docker build来构建镜像,linux和windows上都行。
关于如何构建一个docker镜像,可以参考docker相关的文档
https://www.runoob.com/docker/docker-build-command.html

暂无图片 评论
暂无图片 有用 1
xinyuzxx
题主
2025-02-24
十分感谢!
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏