温馨提示×

ubuntu oracle怎么连接

小樊
54
2026-07-30 08:35:24
栏目: 云计算

在 Ubuntu 上连接 Oracle 数据库,常见有几种方式,下面按最常用场景给你说明(从简单到完整)。


一、使用 SQL*Plus 连接(最常用)

1️⃣ 安装 Oracle Instant Client(推荐)

Oracle 官方提供 Instant Client,轻量、好用。

(1)下载 Instant Client

去 Oracle 官网下载(选 Linux x86-64): https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html

常用包:

  • basic 或 basiclite
  • sqlplus
  • devel(可选)

示例:

oracle-instantclient-basic-21.11.0.0.0-1.x86_64.rpm
oracle-instantclient-sqlplus-21.11.0.0.0-1.x86_64.rpm

(2)安装(Ubuntu 用 alien 转 deb)

sudo apt update
sudo apt install alien libaio1

转换并安装:

sudo alien -i oracle-instantclient-basic-*.rpm
sudo alien -i oracle-instantclient-sqlplus-*.rpm

(3)配置环境变量

编辑 ~/.bashrc 或 ~/.zshrc:

export ORACLE_HOME=/usr/lib/oracle/21/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH

生效:

source ~/.bashrc

2️⃣ 使用 SQL*Plus 连接 Oracle

✅ 方式一:简易连接(最常用)

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

示例:

sqlplus system/oracle@//192.168.1.100:1521/ORCLPDB1

✅ 方式二:使用 TNS(tnsnames.ora)

创建目录:

mkdir -p $ORACLE_HOME/network/admin

编辑:

vi $ORACLE_HOME/network/admin/tnsnames.ora

示例:

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

连接:

sqlplus 用户名/密码@ORCL

二、使用 Python 连接 Oracle(Ubuntu 常见)

1️⃣ 安装依赖

sudo apt install libaio1
pip install oracledb

2️⃣ Python 示例

import oracledb

conn = oracledb.connect(
    user="system",
    password="oracle",
    host="192.168.1.100",
    port=1521,
    service_name="ORCLPDB1"
)

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

conn.close()

✅ 不需要 Instant Client(oracledb 5+ 支持 Thin 模式)


三、使用 DBeaver / DataGrip(图形界面)

  1. 安装 DBeaver(Ubuntu)
sudo snap install dbeaver-ce
  1. 新建 Oracle 连接
    • Host
    • Port:1521
    • Service name
    • 用户名 / 密码

✅ 自动下载 Oracle JDBC 驱动


四、常见问题排查

❌ ORA-12170 / 连接超时

  • 防火墙
telnet IP 1521
  • Oracle listener 是否启动

❌ ORA-12514

listener does not currently know of service requested

✅ 检查 SERVICE_NAME,不是 SID


❌ libaio.so 缺失

sudo apt install libaio1

五、你告诉我以下信息,我可以给你精确命令 ✅

  1. Ubuntu 版本(20.04 / 22.04 / 24.04)
  2. Oracle 版本(11g / 12c / 19c / 21c)
  3. 连接目的(命令行 / Python / Java / 图形工具)
  4. Oracle 在本机还是远程?

我可以直接给你一条可复制的执行方案。

0 踩