一、概述
1.1、什么是MogDB
MogDB 是 EnMotech openGauss DataBase Enterprise Edition 的缩写,是云和恩墨以华为 openGauss 开源数据库为基础,投入研发力量,围绕高可用、安全、自动化运维、数据库一体机、SQL审核优化等企业需求推出的整体解决方案。云和恩墨致力于发挥企业自身优势,优先支持鲲鹏算力,在 openGauss 的运维服务、平台工具等方向为用户提供可信赖的企业级服务和产品,为 openGauss 的开源生态持续贡献力量。
1.2、了解更多
更多关于MogDB的科普,请参看👇🏻
二、入门实操
2.1、容器化安装
1、输入以下命令连接华为云SWR:
docker login -u cn-east-3@MLI3I6DMIETZS9H5N2VI -p c2ebf043f73720aabada13b8a3ae0f7c152bbe32515389a4f60ceede8857ce51 swr.cn-east-3.myhuaweicloud.com
2、根据您的系统架构输入以下命令之一获取最新版MogDB镜像文件:
- x86-64架构的机器:
docker pull swr.cn-east-3.myhuaweicloud.com/enmotech/mogdb:2.0.1_amd
- ARM64架构的机器:
docker pull swr.cn-east-3.myhuaweicloud.com/enmotech/mogdb:2.0.1_arm
3、创建一个要挂载的目录
mkdir /mymogdb
4、启动容器
docker run --name mymogdb --privileged=true -d -e GS_PASSWORD=Secretpassword@123 -v /mymogdb:/var/lib/opengauss -p 15432:5432 swr.cn-east-3.myhuaweicloud.com/enmotech/mogdb:2.0.1_amd
【注意📢】
1、这里是x86架构机器的,ARM64的把amd的镜像换成
2、添加-v参数指定挂载的目录,防止容器意外被删除导致数据丢失
3、密码需要包含大小写和特殊符号,不然启动失败
2.2、测试使用
1、进入容器
docker exec -it mymogdb bash
2、简单使用
root@modb:~# su - omm
omm@modb:~$ gsql
gsql ((MogDB 2.0.1 build f892ccb7) compiled at 2021-07-09 16:15:21 commit 0 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
omm=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+-------+----------+-------------+-------------+-------------------
omm | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
postgres | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/omm +
| | | | | omm=CTc/omm
template1 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/omm +
| | | | | omm=CTc/omm
(4 rows)
三、遇到问题及解决
3.1、ERROR: permission denied for schema public
1、需求
我想要新建一个用户,再新建一个数据库并把owner设置为新建的用户,然后在该数据库中新建表
2、操作
# 通过omm用户连上数据库
su - omm
gsql
# 创建一个新用户
CREATE USER tom WITH PASSWORD 'xxx';
# 创建一个新的数据库并把owner设置为新建的用户
CREATE DATABASE demo OWNER tom;
# 退出
\q
# 使用新用户登录
gsql -U tom -d demo
# 创建一个表
create table my_table (id integer);
这时候报错了!
ERROR: permission denied for schema public
3、问题解决
有幸搜到盖老师的文章,问题直接解决,Nice !!!
循序渐进 openGauss : 新用户权限和 permission denied for schema public
这是因为安全原因,不允许普通客户在public模式下操作。
可以将 ALL PRIVILEGES 授予 deom 用户,需要使用超级用户授权,这里是 omm 用户:
omm=# GRANT ALL PRIVILEGES TO demo;
ALTER ROLE
再次测试
create table my_table (id integer);
CREATE TABLE
问题解决!
3.2、[28000] FATAL: The account has been locked.
【原因】
原因是由于多次密码输入错误,导致用户被锁。
【解决】
解锁即可
# 解锁
omm=# alter user tom account unlock;
ALTER ROLE
# 需要的也可以重置密码
postgres=# alter user tom password 'xxx';
ALTER ROLE
最后修改时间:2021-11-02 21:06:40
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。