ORA-01017:oracle express:21.3.0-xe 容器的无效用户名/密码错误[关闭]

问题描述 投票:0回答:0

我正在使用带有苹果 M1 芯片的 MAC book,我正在使用 [Colima][1] 在 M1 芯片上运行 oracle 容器。

我需要在 oracle 容器上运行集成测试用例。我正在尝试使用 docker-compose.yaml 文件中定义的服务创建 oracle 容器。

我能够成功启动容器,但我无法从我机器上安装的 SQL Developer 工具登录。

我收到身份验证错误:

状态:失败-测试失败:ORA-01017:用户名/密码无效;登录被拒绝。

[![在此处输入图片描述][2]][2]

这个问题中令人惊讶的部分是,如果我使用以下

docker run
命令显式启动容器,则数据库登录可以使用 SQL Developer 工具正常工作,但在使用撰写文件和
docker compose up
命令运行容器时失败.

在我用来启动容器的 docker 命令下面,我可以使用用户名“SYS”和密码“secret”登录数据库。

docker run --name devdb -p 1521:1521 -p 5500:5500 -e ORACLE_PWD=secret container-registry.oracle.com/database/express:21.3.0-xe

并且,在导致数据库登录问题的 docker-compose.yaml 文件下方。

version: '3'
services:
  oracle:
    image: container-registry.oracle.com/database/express:21.3.0-xe
    hostname: oracle
    container_name: oracle
    ports:
      - 1521:1521
      - 5500:5500
    environment:
      - ORACLE_PWD:secret
    volumes:
      - ./scripts/startup:/opt/oracle/scripts/startup

下面是oracle服务器启动日志,可以看到数据库服务器启动成功,没有报错:

[+] Running 1/1
 ⠿ Container oracle  Created                                                                                                                           0.1s
Attaching to oracle
oracle  | Starting Oracle Net Listener.
oracle  | Oracle Net Listener started.
oracle  | Starting Oracle Database instance XE.
oracle  | Oracle Database instance XE started.
oracle  |
oracle  | The Oracle base remains unchanged with value /opt/oracle
oracle  | #########################
oracle  | DATABASE IS READY TO USE!
oracle  | #########################
oracle  |
oracle  | Executing user defined scripts
oracle  | /opt/oracle/runUserScripts.sh: running /opt/oracle/scripts/startup/ddl.sql
oracle  |
oracle  | Table created.
oracle  |
oracle  |
oracle  | 0 rows deleted.
oracle  |
oracle  |
oracle  | 1 row created.
oracle  |
oracle  | DONE: Executing user defined scripts
oracle  |
oracle  | The following output is now a tail of the alert.log:
oracle  | Starting background process CJQ0
oracle  | 2023-04-03T19:29:19.672431+00:00
oracle  | CJQ0 started with pid=63, OS id=424
oracle  | Completed: ALTER DATABASE OPEN
oracle  | 2023-04-03T19:29:21.170374+00:00
oracle  | ===========================================================
oracle  | Dumping current patch information
oracle  | ===========================================================
oracle  | No patches have been applied
oracle  | ===========================================================
oracle  | 2023-04-03T19:29:36.087762+00:00
oracle  | System State dumped to trace file /opt/oracle/diag/rdbms/xe/XE/trace/XE_cjq0_424.trc
oracle  | 2023-04-03T19:30:03.688697+00:00
oracle  | XEPDB1(3):TABLE AUDSYS.AUD$UNIFIED: ADDED INTERVAL PARTITION SYS_P360 (3199) VALUES LESS THAN (TIMESTAMP' 2023-04-04 00:00:00')

我尝试删除主机名、容器名称和自定义启动脚本配置,但没有帮助。我还尝试使用 SYS 用户名的默认密码“CHANGE_ON_INSTALL”,但它没有用。

认证失败的原因是什么?

使用 docker-compose 命令时是否需要明确提供 tnsnames.ora 或任何其他配置?

oracle authentication docker-compose sqlplus oracle-xe
© www.soinside.com 2019 - 2024. All rights reserved.