【 使用环境 】测试环境
【 OB 】
【 使用版本 】oceanbase-ce:4.2.1_bp3
【问题描述】使用官方镜像docker容器,不清楚怎么把命令传过去。
比如 docker run 设置了root密码,使用 docker exec -it oceanbase-ce ob-mysql root 登陆数据库,
这个时候需要docker exec -it oceanbase-ce ob-mysql root OB_ROOT_PASSWORD=XXX,才能把密码传过去,而不是-pxxx。
1.请问 OB_ROOT_PASSWORD=XXX怎么生效的?从控制台打印来看这里并没有使用PASSCMD变量,但是达成了-pxxx的效果
2. 请问其他obclient -h127.1 -uroot@obmysql -A -Doceanbase -P2881后接的命令怎么传?即源码中PASSCMD怎么赋值?
【ob-mysql脚本源码】
#!/bin/bash
CWD=$(cd `dirname $0`;pwd)
cd "${CWD}"
source _env
case "$1" in
sys)
LOGIN_USER="root@sys"
DB="oceanbase"
;;
root)
DB="oceanbase"
LOGIN_USER="root@${OB_TENANT_NAME}"
;;
*)
DB="test"
LOGIN_USER="test@${OB_TENANT_NAME}"
;;
esac
echo "login as ${LOGIN_USER}"
CMD="obclient -h127.1 -u${LOGIN_USER} -A -D${DB} -P${OB_MYSQL_PORT} ${PASSCMD}"
echo "Command is: ${CMD}"
${CMD}