Ubuntu 22.04中使用DBeaver-CE连接Oracle数据库失败求助
错误信息
The Network Adapter could not establish the connection
The Network Adapter could not establish the connection
Connection refused, socket connect lapse 0 ms. /127.0.0.1 1521 0 1 true
Connection refused, socket connect lapse 0 ms. /127.0.0.1 1521 0 1 true
Connection refused
Connection refused
排查及解决步骤
确认Oracle服务状态
若Oracle为本地部署,执行命令检查监听服务运行状态:lsnrctl status
若监听未启动,执行lsnrctl start启动。同时检查Oracle实例是否正常运行:sqlplus / as sysdba
进入后执行select status from v$instance;,若状态不为OPEN,执行startup启动实例。检查端口1521状态
Ubuntu下用以下命令检查1521端口是否有进程监听:sudo lsof -i :1521
或sudo netstat -tulpn | grep 1521
无监听进程则说明Oracle监听未配置或未启动;若端口被其他程序占用,需修改Oracle监听端口或停止占用端口的程序。同时检查防火墙是否开放1521端口:
sudo ufw status
若防火墙开启且1521未开放,执行sudo ufw allow 1521开放端口。核对DBeaver连接配置
- 确认主机地址:Oracle为远程服务器时,不能填
127.0.0.1,需填写远程主机IP或域名; - 检查端口号:需与Oracle监听配置一致(默认1521,修改过则对应调整);
- 确认SID/服务名:可通过
lsnrctl services查看监听的服务名。
- 确认主机地址:Oracle为远程服务器时,不能填
验证Oracle JDBC驱动
确保DBeaver已安装对应版本的Oracle JDBC驱动:- 打开DBeaver连接设置,进入「驱动」选项卡;
- 点击「下载/更新」,选择对应Oracle版本的驱动(如ojdbc8、ojdbc11);
- 下载完成后重新尝试连接。
测试网络连通性
用ping测试主机可达性:ping <Oracle主机IP>
用telnet测试端口连通:telnet <Oracle主机IP> 1521
若telnet失败,说明网络层面存在阻断,需排查路由、防火墙或Oracle服务器的网络配置。
内容的提问来源于stack exchange,提问作者prajwal

