温馨提示×

ubuntu如何连oracle

小樊
48
2026-10-04 19:06:54
栏目: 云计算

在 Ubuntu 上连接 Oracle 数据库,通常有几种常见方式,取决于你的使用场景(开发、运维、应用连接等)。下面按最常用场景给你一个清晰指南。


一、使用命令行工具连接(sqlplus)

1. 安装 Oracle Instant Client

Oracle 官方提供 Instant Client,最轻量。

sudo apt update
sudo apt install -y libaio1 wget unzip

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

cd /opt
sudo wget https://download.oracle.com/otn_software/linux/instantclient/2119000/instantclient-basic-linux.x64-21.19.0.0.0.zip
sudo wget https://download.oracle.com/otn_software/linux/instantclient/2119000/instantclient-sqlplus-linux.x64-21.19.0.0.0.zip
sudo unzip instantclient-basic-linux.x64-21.19.0.0.0.zip
sudo unzip instantclient-sqlplus-linux.x64-21.19.0.0.0.zip

2. 配置环境变量

echo 'export ORACLE_HOME=/opt/instantclient_21_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 方式连接(推荐生产环境)

1. 配置 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 = orcl)
    )
  )

2. 连接

sqlplus 用户名/密码@ORCL

三、使用编程语言连接

1. Python(推荐)

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 * FROM emp")
for row in cursor:
    print(row)

✅ 无需 Instant Client(oracledb 新版本支持 Thin 模式)


2. Java(JDBC)

sudo apt install default-jdk

JDBC URL:

jdbc:oracle:thin:@192.168.1.100:1521:orcl

四、常见问题排查

1. ORA-12170 连接超时

  • 防火墙
  • 监听未启动
  • IP/端口错误

2. libaio 缺失

sudo apt install libaio1

3. 字符集问题

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

五、总结选择建议

场景 推荐方式
运维 sqlplus
开发 Python oracledb
应用 JDBC / ODBC

如果你告诉我:

  • Ubuntu 版本
  • Oracle 版本
  • 是本地还是远程
  • 用哪种语言

我可以给你更精确的配置步骤。

0 踩