docker启动后怎么外部连接


docker部署已经启动,外部连接怎么连,root好像没有密码。,我怎么创建一个数据库,和一个用户并且连接

docker部署方式
Docker启动命令:

docker run -p 2881:2881 --name obstandalone -e MINI_MODE=1 -d oceanbase/oceanbase-ce

外部连接命令可以是:

使用OBClient连接
obclient -h localhost(ip地址) -P 2881 -uroot@sys oceanbase -A -c

如果设置了密码,还需加上-p选项
obclient -h localhost(ip地址) -P 2881 -uroot@sys -p password -A -c

-p密码应该是空的。
设置密码: ALTER USER root IDENTIFIED BY ‘****’;

现在社区版的部署 obd 或 ocp-express 部署已经很方便了,不怎么需要 docker 这种部署方式。

不过既然用了 docker 部署,下面的建议供参考:

  1. 不要用 root 这种方式去连接 OB,虽然不报错,默认都连接到 sys 租户了。
  2. 不要在 sys 租户里 创建数据库和表。
  3. 创建一个业务租户(兼容mysql)。连接这个 mysql,后面就当 mysql实例用(建库、建表)。
  4. 这个例子 供参考,虽然不是同一个docker 镜像,版本也有点老。建租户和数据库方法是一样的。 5 分钟玩转 OceanBase 社区版 Docker 部署

外部没有下Client.所有我是用容器内连接,


已经启动了,容器内连接的

工具连接不输入密码提示密码错误


我映射的外部端口是2882


docker run -p 2882:2881
–name oceanbase-ce-3.1.4
-m 10G
-e MINI_MODE=0 -d
–restart=always
-v /opt/edgs/docker/oceanbase-ce-3.1.4/data/ob:/root/ob
-v /opt/edgs/docker/oceanbase-ce-3.1.4/data/obd:/root/.obd
oceanbase/oceanbase-ce:3.1.4
这是我的启动命令。。分配的最大资源是10G

OB 默认监听 2881 和 2882 端口。
如果docker 启动的时候是 host 模式,外部访问 2881 端口(用户名用 root@sys) 也是可以访问的。如果docker 是 bridge 模式,宿主机跟 容器是可以通,其他服务器就要想的别的办法。直接将端口映射出去更好(2881:2881)。

我这是在分配资源的时候报错了