You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Docker中Oracle Database 21c官方镜像的默认密码?

解决Oracle 21c Docker镜像密码问题及报错处理

先处理setPassword.sh执行报错问题

出现ORA-01109(数据库未打开)、ORA-65011(可插拔数据库ORCLPDB1不存在)的核心原因是容器启动后数据库还未完成初始化。Oracle 21c企业版镜像的初始化过程需要几分钟到十几分钟(取决于主机性能),此时数据库实例和PDB都未就绪,直接执行密码修改脚本必然报错。

解决步骤:

  • 等待初始化完成:执行docker logs -f oracle-db实时追踪日志,直到出现DATABASE IS READY TO USE!的提示,或者看到包含默认密码的输出行,说明初始化完成。
  • 若仍有问题,手动检查并修复PDB状态:
    1. 进入容器SQLPlus:docker exec -it oracle-db sqlplus / as sysdba
    2. 检查数据库状态:select open_mode from v$database;,确认结果为READ WRITE
    3. 检查PDB状态:select name, open_mode from v$pdbs;,若ORCLPDB1状态不是READ WRITE,执行alter pluggable database ORCLPDB1 open;
    4. 退出SQLPlus后重新执行docker exec oracle-db ./setPassword.sh 12345678即可。

查找Oracle 21c Docker镜像的默认密码

官方镜像的默认密码是初始化完成后随机生成并输出到容器日志的,具体获取方式:

  • 直接查看容器日志:docker logs oracle-db,搜索关键字(如SYS、password),会找到类似以下的行:

The default password for SYS, SYSTEM and PDBADMIN is <随机字符串>.

  • 用过滤命令快速定位:docker logs oracle-db | grep -i "password"

额外优化建议

启动容器时直接通过环境变量指定密码,避免后续操作:

docker run -d --name oracle-db -e ORACLE_PASSWORD=12345678 container-registry.oracle.com/database/enterprise:21.3.0.0

这样容器初始化时会直接将SYS、SYSTEM、PDBADMIN的密码设为指定值,无需再执行setPassword.sh。

内容的提问来源于stack exchange,提问作者Đỗ Như Vỹ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 07:31:16