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

如何通过SQL Developer连接Linux虚拟机上的Oracle数据库?

连接Linux虚拟机Oracle数据库(IP连接失败)操作指引

一、先验证网络连通性

  • 本地机器执行 ping 虚拟机IP,确认能ping通。若不通:
    • 检查虚拟机网络模式(桥接模式确保和本地同网段,NAT模式需配置端口转发)
    • 临时关闭Linux防火墙测试:systemctl stop firewalld;长期使用建议开放1521端口:
      firewall-cmd --add-port=1521/tcp --permanent
      firewall-cmd --reload
      
    • 检查SELinux状态:getenforce,若为Enforcing,临时关闭:setenforce 0,后续可配置SELinux规则放行Oracle服务

二、配置Oracle远程访问

1. 调整监听器配置

编辑$ORACLE_HOME/network/admin/listener.ora(如果不存在则新建),确保监听器绑定虚拟机IP或0.0.0.0:

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 虚拟机IP)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

重启监听器并验证状态:

lsnrctl stop
lsnrctl start
lsnrctl status

查看输出的Services Summary,确认目标数据库实例已注册

2. 配置数据库实例注册

用sys用户登录数据库:sqlplus / as sysdba,执行以下SQL:

ALTER SYSTEM SET REMOTE_LISTENER='虚拟机IP:1521' SCOPE=BOTH;
ALTER SYSTEM SET LOCAL_LISTENER='虚拟机IP:1521' SCOPE=BOTH;
ALTER REGISTER;

3. 授权用户远程连接

确保连接用户拥有远程会话权限:

GRANT CREATE SESSION TO 你的用户名;
-- 12c及以上CDB架构,需确保PDB处于打开状态
ALTER PLUGGABLE DATABASE 你的PDB名称 OPEN;

三、SQL Developer连接参数设置

新建连接时按以下配置填写:

  • 连接类型:选择Basic
  • 主机名:填写虚拟机的实际IP地址(禁止用localhost/127.0.0.1)
  • 端口:默认1521,若修改过监听端口则填对应值
  • SID/服务名:二选一(注意区分):
    • SID:执行SELECT instance_name FROM v$instance;查询实例名
    • 服务名:执行SELECT name FROM v$database;或从lsnrctl status的Services中获取;PDB的服务名通常为PDB名.域名(如pdb1.orcl)
  • 用户名/密码:填写已授权的数据库用户账号
  • 点击测试,成功后保存连接

四、常见错误排查

  • ORA-12541: TNS:无监听程序:检查监听器是否启动、防火墙是否放行1521端口、listener.ora配置是否正确
  • ORA-12514: TNS:监听程序无法识别请求的服务:确认SID/服务名填写正确,数据库实例已注册到监听器(查看lsnrctl status输出)
  • ORA-01017: 用户名/密码无效:核对账号密码,确认用户拥有CREATE SESSION权限,12c+需确认PDB处于打开状态

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:40:31