在 Ubuntu 上连接 Oracle 数据库,通常有以下几种常见场景和需求。下面我按使用方式给你系统讲一下,你可以对照自己的情况。
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
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
sqlplus 用户名/密码@ip:端口/服务名
示例:
sqlplus scott/tiger@192.168.1.100:1521/orcl
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
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())
lsnrctl status
确保监听端口(默认 1521)开放。
telnet 192.168.1.100 1521
# 或
nc -zv 192.168.1.100 1521
sudo apt install libaio1
你可以告诉我:
我可以直接给你一步一步可执行方案。