在 Ubuntu 上连接 Oracle 数据库,通常有几种常见方式,取决于你的使用场景(开发、运维、应用连接等)。下面按最常用场景给你一个清晰指南。
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
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
sqlplus 用户名/密码@IP:端口/服务名
示例:
sqlplus scott/tiger@192.168.1.100:1521/orcl
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)
)
)
sqlplus 用户名/密码@ORCL
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 模式)
sudo apt install default-jdk
JDBC URL:
jdbc:oracle:thin:@192.168.1.100:1521:orcl
sudo apt install libaio1
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
| 场景 | 推荐方式 |
|---|---|
| 运维 | sqlplus |
| 开发 | Python oracledb |
| 应用 | JDBC / ODBC |
如果你告诉我:
我可以给你更精确的配置步骤。