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

求助:Sql Developer无法连接Docker容器内的Oracle数据库实例

解决SQL Developer无法连接Docker容器内Oracle数据库的问题

核心排查与修复步骤

  • 确认容器端口映射配置
    启动Oracle容器时必须完成1521端口的宿主机映射,启动命令需包含 -p 1521:1521。执行docker ps查看容器端口状态,确保宿主机与容器的1521端口已正确绑定。
  • 检查容器内Oracle服务状态
    进入容器内部执行以下命令验证服务与监听:
    docker exec -it <容器ID/名称> bash
    su - oracle
    # 查看监听运行状态
    lsnrctl status
    # 查询数据库服务名
    sqlplus / as sysdba
    select name from v$database;
    select instance_name from v$instance;
    
    确保监听已启动,且SQL Developer中填写的服务名与查询结果完全一致。
  • 修正SQL Developer连接配置
    连接类型选择Basic,主机填写宿主机IP,端口填映射后的宿主机1521端口,服务名填上述查询到的数据库名称(如ORCL、XE,取决于镜像版本),优先用Basic模式测试连接,避免TNS名称连接的额外配置问题。
  • 验证网络连通性
    在宿主机执行telnet <宿主机IP> 1521或nc -zv <宿主机IP> 1521,确认端口可正常访问,排除防火墙、安全组阻止连接的情况。
  • 等待镜像初始化完成
    部分Oracle镜像首次启动需耗时初始化数据库,需等待容器日志出现DATABASE IS READY TO USE!类提示后再尝试连接。

针对ORA-12514错误的专属修复

若错误提示为ORA-12514: TNS:listener does not currently know of service requested in connect descriptor,按以下操作处理:

  1. 通过lsnrctl status检查Services Summary部分,确认目标服务是否已注册到监听。
  2. 若未注册,进入容器执行sqlplus / as sysdba,运行alter system register;手动注册服务,随后重启监听:lsnrctl stop && lsnrctl start。

内容的提问来源于stack exchange,提问作者Bikrant Thakur

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 21:00:06