温馨提示×

Ubuntu怎么连Oracle

小樊
49
2026-08-26 03:16:08
栏目: 云计算

Ubuntu 上连接 Oracle 数据库,常见有几种场景。下面按使用目的给你一个清晰、实用的总结(从最常见到高级)。


一、Ubuntu 作为 客户端,连接远程 Oracle 数据库(最常见)

✅ 方式一:使用 Oracle Instant Client + sqlplus(官方推荐)

1️⃣ 下载 Oracle Instant Client

官网(需 Oracle 账号): https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html

常用包:

  • basic
  • sqlplus
  • sdk(可选)

例如:

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️⃣ 安装依赖并转换 rpm

sudo apt update
sudo apt install alien libaio1 unzip

转换并安装:

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

3️⃣ 配置环境变量

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

写入 .bashrc 永久生效:

echo 'export ORACLE_HOME=/usr/lib/oracle/21/client64' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=$ORACLE_HOME/lib' >> ~/.bashrc
echo 'export PATH=$ORACLE_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

4️⃣ 连接 Oracle

sqlplus user/password@//ip:1521/ORCL

✅ 成功示例:

SQL>

二、通过 JDBC / 程序连接(Java / Python / C++)

✅ Java(JDBC)

String url = "jdbc:oracle:thin:@//host:1521/ORCL";

依赖:

<dependency>
  <groupId>com.oracle.database.jdbc</groupId>
  <artifactId>ojdbc8</artifactId>
  <version>21.9.0.0</version>
</dependency>

✅ Python(推荐 cx_Oracle / oracledb)

新方式(Oracle 官方推荐)

pip install oracledb
import oracledb

conn = oracledb.connect(
    user="user",
    password="password",
    host="ip",
    port=1521,
    service_name="ORCL"
)

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

✅ 不需要 Instant Client(Thin 模式)


三、Ubuntu 上 安装 Oracle 数据库(不推荐桌面环境)

⚠️ 仅服务器/学习用途

可选方案:

  • Docker(最简单 ✅)
  • 本地 RPM 安装(复杂 ❌)

✅ Docker 安装 Oracle(推荐)

docker run -d \
  --name oracle \
  -p 1521:1521 \
  -e ORACLE_PASSWORD=oracle \
  gvenzl/oracle-xe:21

连接:

sqlplus system/oracle@//localhost:1521/XE

四、常见错误与解决

sqlplus: command not found

echo $PATH
which sqlplus

libaio.so.1: cannot open shared object

sudo apt install libaio1

❌ ORA-12170 / TNS 超时

  • 检查:
    • IP 是否通
    • 1521 端口是否开放
    • service_name 是否正确

五、我可以进一步帮你

你可以直接告诉我:

  1. Ubuntu 版本?
  2. Oracle 版本?
  3. 远程还是本地?
  4. 用 sqlplus / Python / Java / 其他?

我可以给你 一步一步精确到命令 的方案。

0