温馨提示×

ubuntu连oracle如何设置

小樊
39
2026-10-01 20:36:30
栏目: 云计算

在 Ubuntu 上连接 Oracle 数据库,通常有以下几种常见场景和需求。下面我按使用方式给你系统讲一下,你可以对照自己的情况。


一、Ubuntu 连接 Oracle 的几种方式

  1. 命令行工具(SQL*Plus / sqlplus)
  2. 编程语言连接(Python / Java / PHP 等)
  3. 图形化工具(DBeaver / Oracle SQL Developer)
  4. ODBC / JDBC 连接

二、使用 SQL*Plus 连接 Oracle(最基础)

1️⃣ 安装 Oracle Instant Client

sudo apt update
sudo apt install -y libaio1 wget unzip

下载 Instant Client(以 19c 为例):

cd /opt
sudo wget https://download.oracle.com/otn_software/linux/instantclient/1919000/instantclient-basic-linux.x64-19.19.0.0.0dbru.zip
sudo wget https://download.oracle.com/otn_software/linux/instantclient/1919000/instantclient-sqlplus-linux.x64-19.19.0.0.0dbru.zip

sudo unzip instantclient-basic-linux.x64-19.19.0.0.0dbru.zip
sudo unzip instantclient-sqlplus-linux.x64-19.19.0.0.0dbru.zip
sudo mv instantclient_19_19 /opt/oracle

2️⃣ 配置环境变量

echo 'export ORACLE_HOME=/opt/oracle/instantclient_19_19' >> ~/.bashrc
echo 'export PATH=$ORACLE_HOME:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

3️⃣ 连接 Oracle

sqlplus 用户名/密码@ip:端口/服务名

示例:

sqlplus scott/tiger@192.168.1.100:1521/orcl

三、使用 TNS 方式连接(推荐生产环境)

配置 tnsnames.ora

mkdir -p /opt/oracle/network/admin
vi /opt/oracle/network/admin/tnsnames.ora

内容示例:

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

设置变量:

export TNS_ADMIN=/opt/oracle/network/admin

连接:

sqlplus scott/tiger@ORCL

四、Ubuntu 上使用 Python 连接 Oracle

安装依赖

pip install oracledb

示例

import oracledb

conn = oracledb.connect(
    user="scott",
    password="tiger",
    host="192.168.1.100",
    port=1521,
    service_name="orcl"
)

cursor = conn.cursor()
cursor.execute("SELECT SYSDATE FROM dual")
print(cursor.fetchone())

五、防火墙 & 网络检查(很重要)

Oracle 服务器侧

lsnrctl status

确保监听端口(默认 1521)开放。

Ubuntu 侧测试

telnet 192.168.1.100 1521
# 或
nc -zv 192.168.1.100 1521

六、常见问题

❌ ORA-12170 连接超时

  • IP 不通
  • 防火墙拦截
  • 监听未启动

❌ ORA-12514

  • SERVICE_NAME 写错
  • 数据库未注册到监听

❌ libaio 缺失

sudo apt install libaio1

七、你目前是哪种情况?

你可以告诉我:

  • ✅ Ubuntu 是 客户端还是服务器
  • ✅ Oracle 是 本地还是远程
  • ✅ 用 命令行 / Python / Java / 图形工具
  • ✅ Oracle 版本(11g / 12c / 19c)

我可以直接给你一步一步可执行方案。

0 踩