---
title: Web 版 ODC 启动后无法访问 -OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于Web 版 ODC 启动后无法访问 相关的常见问题和使用技巧，帮助您快速解决Web 版 ODC 启动后无法访问 的难题。
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

划线反馈

# Web 版 ODC 启动后无法访问

更新时间：2023-11-14 07:11

适用版本： V3.1.x、V3.2.x、V3.3.x、V3.4.x、V4.0.x、V4.1.x、V4.2.x 内容类型：Troubleshoot  

## 问题现象

应用启动一段时间后，无法访问 Web 版 ODC 地址。

## 问题原因

| **报错信息** | **常见原因** |
| --- | --- |
| 应用无法连接元数据库导致启动失败 | - MetaDB 配置错误。例如：密码错误。 - MetaDB 所在集群参数未开启 prepare statement。 - MetaDB 所在租户白名单配置未包含 ODC 所在机器 IP 地址。 |
| 升级执行数据迁移失败 | ODC V3.2.0 之前的版本升级到更高版本时，存在已有的 admin 账号名称冲突。 |
| 容器化部署场景下由于宿主机 Docker 的网络设定错误导致无法访问 | Docker 启动网络参数配置端口映射，但 Docker 内 DNS 寻址故障。 |

## 解决方法

查询 ODC 日志 `odc.log`。

### 无法连接元数据库

此问题可能因用户在启动参数中填写错误元数据库的信息导致的：元数据库的 endpoint 错误或者元数据库的账户密码错误。

具体原因需要根据 ODC 的日志来判断。通常，由于元数据库因素导致的启动失败会在日志中发现如下打印，关键字为：`Could not connect to address`。

![1](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/KB/3.common-troubleshooting/1.deployment-upgrade/1.web-odc-cannot-be-accessed-after-startup/1.png)

用户需要对启动参数中的元数据库信息做逐一检查，建议通过 OBClient 在 ODC 的部署环境中进行实际连接测试，确保元数据库连接信息无误。

#### **docker run 参数小技巧**

使用 docker run 启动 odc-server docker 时，需要通过 -e 设置环境变量值，该变量值可以使用 export命令设置后在 docker run 中直接引用，或者直接设置在 docker run -e 参数列表中。

推荐使用 export命令设置后在 docker run 中直接引用的方式，因为

- 密码字段通常会包含特殊字符，如包含 $$ 符号，在 shell 中会被解析为进程号导致含义出错，docker run 中引用变量值可避免该问题。
 - 更安全，避免在宿主机通过 ps 命令显示 MetaDB 连接信息。

示例：使用 export命令设置后在 docker run 中直接引用。

```shell
#创建 metadb，配置启动参数配置
export DATABASE_HOST=***
export DATABASE_PORT=***
export DATABASE_NAME=***
export DATABASE_USERNAME=***
export DATABASE_PASSWORD=***

# 启动 odc-server docker
ODC_DOCKER_NAME="odc-server" &&
MEMORY_LIMIT=8G &&
docker run -d -it --name ${ODC_DOCKER_NAME} --network host \
 --cpu-period 100000 --cpu-quota 400000 --memory=${MEMORY_LIMIT} \
 -e PROFILE_MODE -e DATABASE_HOST -e DATABASE_PORT -e DATABASE_NAME \
 -e DATABASE_USERNAME -e DATABASE_PASSWORD \
 ${ODC_DOCKER_IMAGE_ID}

```

### **升级执行数据迁移失败**

#### **3.1.x 之前的版本升级到 3.2.0 及之后的版本，内置 admin 账号名称冲突**

为避免账号冲突，ODC 启动时会进行预检查，如果存在内置账号名称冲突则需要将之前版本冲突的账号重命名。

1. 查看odc.log确认具体的出错位置。日志关键字可能为下述一种：

      - Failed to migrate users
      - Renamed account name conflicts
      - Failed to migrate odc users
      - Duplicated account name

       ![2](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/KB/3.common-troubleshooting/1.deployment-upgrade/1.web-odc-cannot-be-accessed-after-startup/2.png)
 2. 在日志中查询 ODC 生成的rename.properties文件路径，该文件用于对系统中的同名 admin 用户进行更名。

   ```shell
   [2022-03-23 20:15:31.837][main][,,][ERROR][com.alipay.odc.metadb.alipay.V3202BuiltInResourceMigrate][103]: Failed to migrate odc users, the reason is that the account name and the reserved account have the same name, reservedAccountNames=admin, renameFile=/Users/yh263208/oceanbase/odc/ob-odc/app/odc-web-starter/target/classes/static/tmp/rename.properties

   ```
 3. 查看rename.properties文件内容。

   ```plaintext
   #Please enter the rename of the conflicting account name here
   #Wed Mar 23 20:15:31 CST 2022
   admin=

   ```
 4. 将新的账户名填写在冲突名称之后，再重启 ODC 应用。

#### **升级时 MetaDB 数据迁移出错**

如果不是内置账号名称冲突导致的数据迁移失败，则需要根据迁移历史和日志做进一步分析。

1. 连接到 ODC 的 MetaDB，确定应用的升级是否成功。

   ODC 的元数据库 migrate_schema_history表记录了应用的升级历史，可以检查最新一条记录的success是否为1，如果是则证明应用升级成功，否则证明升级失败。

   查询参考语句：

   ```sql
   -- 按照版本号和执行脚本聚合查询，原始的记录数量可能因为反复尝试重新运行失败的脚本而较多
   select version, script, success, max(install_rank) as install_rank
   from migrate_schema_history
   group by version, script, success
   order by install_rank desc;

   ```
 2. 检查日志，根据odc.log中的报错信息确定具体的升级失败原因。

### Docker 网络设置问题

如果是通过 Docker 技术部署 ODC 应用，需要排查 Docker 的网络设置是否正确。在 ODC 部署手册中有 2 种网络模式以供选择：

- host 模式，这种模式将复用宿主机的网络，用户无需进行任何网络设定即可使用。
 - 对相应的网络端口映射，以保证 ODC 和外界的网络通信。

上一篇

[修改 ODC 登录失败尝试次数限制](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000001393333)

下一篇

[Web 版 ODC 用户账号锁定](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000544171) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
