温馨提示×

Linux Oracle如何连接

小樊
44
2026-07-01 04:23:31
栏目: 云计算

在 Linux 上连接 Oracle 数据库,常见场景有几种,下面按最常用方式给你说明,并附上示例。


一、在 Linux 服务器本地连接 Oracle(最常用)

1️⃣ 使用 sqlplus 连接

✅ 前提条件

  • Oracle 已安装(单机 / RAC)
  • 环境变量已配置(ORACLE_HOME、ORACLE_SID)

✅ 配置环境变量

export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH

(可写入 ~/.bash_profile


2️⃣ 连接数据库

方式一:操作系统认证(本地)

sqlplus / as sysdba

仅限本机,且用户属于 dba


方式二:用户名密码连接

sqlplus username/password

方式三:指定服务名

sqlplus username/password@//localhost:1521/orclpdb

二、通过监听器连接(远程 / 本地都适用)

1️⃣ 查看监听状态

lsnrctl status

2️⃣ tnsnames.ora 配置示例

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = orclpdb)
    )
  )

3️⃣ 使用 TNS 连接

sqlplus username/password@ORCL

三、从 Linux 客户端连接远程 Oracle

1️⃣ 安装 Oracle 客户端

  • 下载 Oracle Instant Client
  • 解压并配置环境变量:
export LD_LIBRARY_PATH=/opt/oracle/instantclient
export PATH=$LD_LIBRARY_PATH:$PATH

2️⃣ 连接远程数据库

sqlplus username/password@//192.168.1.10:1521/orclpdb

四、常见问题排查

❌ ORA-12170(连接超时)

  • 防火墙未放行 1521
firewall-cmd --add-port=1521/tcp --permanent
firewall-cmd --reload

❌ ORA-12541(无监听)

lsnrctl start

❌ ORA-01017(用户名密码错误)

  • 确认用户未被锁定
SELECT username, account_status FROM dba_users;

五、其他连接方式(补充)

JDBC(Java)

jdbc:oracle:thin:@//host:1521/service_name

Python(cx_Oracle / oracledb)

import oracledb
conn = oracledb.connect(
    user="scott",
    password="tiger",
    host="localhost",
    port=1521,
    service_name="orclpdb"
)

六、快速判断你现在该用哪种方式

场景 推荐方式
Linux 本机 + Oracle 已装 sqlplus / as sysdba
本机 + 远程库 sqlplus user/pass@//ip:1521/service
只安装客户端 Instant Client + sqlplus
程序连接 JDBC / Python / ODBC

如果你愿意,可以告诉我:

  • ✅ Oracle 版本(11g / 12c / 19c)
  • ✅ 是否本机
  • ✅ 报错信息

我可以给你精确到命令级别的操作步骤。

0