linux 环境下连接Oracle

今天Windows开始黑屏了(欢迎大家脱离MS)。
在linux上装了oracle,作为程序员当然要试试连接了,google、baidu了很多,没发现一个完整的介绍(也许是我没发现)。
所以自己摸索了:
[b]OS:gentoo
Oracle: 10.2.0.1g
JDBC: mysql-connector-java-3.1.11-bin.jar
[/b]

1. Starting Oracle Enterprise Manager 10g Database Control
oracle@xx ~ $ emctl start dbconsole

2. Starting Listener:
oracle@xx ~ $ lsnrctl

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 21-OCT-2008 01:30:59
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Welcome to LSNRCTL, type "help" for information.
LSNRCTL> start
LSNRCTL> exit

3. Starting DB :
oracle@xx ~ $ sqlplus / as sysdba
SQL>startup;


访问:http://localhost:1158/em/console/logon/logon
如附件中的图,表示一切正常启动

java 连接 oracle ,几乎和连接mysql没什么区别。

        className = "oracle.jdbc.OracleDriver";
connectUrl = "jdbc:oracle:thin:@127.0.0.1:1521:orcl"; //orcl- 改为你的Oracle SID
user = "scott";
passwd = "tiger";

Class.forName(this.className);
DriverManager.getConnection(connectUrl, user, passwd);

然后是
 con = getConnection();
stm = con.prepareStatement(sql);
res = stm.executeQuery();
while(res.next())
...


okay!
<think>好的,用户现在问的是在Linux环境连接Oracle数据库的命令。首先,我需要回忆一下常见的连接方式。用户可能是在使用sqlplus或者一些其他工具,比如sqlcl或者第三方客户端。但最常见的是用Oracle自带的sqlplus命令行工具。 接下来,我需要确认用户是否已经安装了Oracle客户端或者Instant Client,因为这是运行sqlplus的前提。如果用户没有安装,可能需要先指导他们安装。但用户的问题直接是连接命令,所以可能已经安装好了,只是需要知道具体命令。 然后,要考虑连接的不同方式。比如基本连接、使用Easy Connect(不需要tnsnames.ora)、使用TNS别名,或者通过Bequeath协议本地连接。这些不同的方法对应的命令格式不同,需要分别说明。 另外,用户可能需要知道如何指定端口、服务名或SID。例如,使用SID时连接字符串和用服务名时不同,特别是在Oracle 12c之后,多租户架构下服务名更常见,但有些环境可能还在用SID。 还有环境变量的设置,比如ORACLE_HOME和LD_LIBRARY_PATH是否正确配置,否则即使安装了客户端,sqlplus可能也无法运行。需要提醒用户检查这些变量,或者将sqlplus的路径加入PATH中。 用户可能遇到的常见问题,比如TNS监听问题、权限不足、防火墙阻止了1521端口等。虽然在问题中没有提到错误排查,但可能需要简要提及,帮助用户自行诊断连接失败的原因。 此外,是否需要示例?比如给出具体的IP、端口、服务名的例子,这样用户可以直接替换成自己的参数。同时,可能需要注意用户名和密码的安全性,避免在命令行中直接输入密码,提示使用提示输入的方式。 还有,是否要介绍其他工具,比如SQLcl或SQL Developer,但用户明确问的是命令,可能更关注命令行工具。 最后,整理步骤:先确保客户端安装,设置环境变量,然后使用sqlplus命令的不同格式进行连接,给出示例,并可能提到常见问题和解决方法。这样用户能一步步操作,避免遗漏关键点。</think>在 Linux 环境连接 Oracle 数据库,最常用的工具是 Oracle 自带的 **`sqlplus`** 命令行工具。以下是详细的连接方法及常见场景: --- ### **1. 基本连接命令** #### **语法格式**: ```bash sqlplus 用户名/密码@数据库连接字符串 ``` #### **示例**: ```bash # 直接输入用户名和密码(明文) sqlplus scott/tiger@localhost:1521/orcl # 隐藏密码输入(推荐,避免密码暴露在命令历史中) sqlplus scott@localhost:1521/orcl # 输入后系统会提示输入密码 ``` --- ### **2. 不同连接方式** #### **(1) 使用 Easy Connect(无需配置 `tnsnames.ora`)** ```bash # 格式:sqlplus 用户名/密码@主机名:端口/服务名 sqlplus scott/tiger@192.168.1.100:1521/orcl ``` #### **(2) 使用 TNS 别名(需配置 `tnsnames.ora`)** 1. **配置 TNS 别名**: 编辑 `$ORACLE_HOME/network/admin/tnsnames.ora`,添加如下内容: ```plaintext ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) ``` 2. **连接命令**: ```bash sqlplus scott/tiger@ORCL ``` #### **(3) 直接连接到本地数据库(无需网络监听)** ```bash sqlplus / as sysdba # 以 SYSDBA 身份连接(需操作系统认证权限) sqlplus scott/tiger # 直接连接本地默认实例 ``` --- ### **3. 关键参数说明** | 参数 | 说明 | |-------------------|----------------------------------------------------------------------| | **`用户名/密码`** | 数据库账号及密码(如 `scott/tiger`)。 | | **`@主机名`** | 数据库服务器的 IP 或域名(如 `localhost` 或 `192.168.1.100`)。 | | **`:端口`** | 监听端口,默认 `1521`(可省略)。 | | **`/服务名`** | 数据库的服务名(如 `orcl`)。若使用 SID,需替换为 `:SID`。 | --- ### **4. 常见问题排查** #### **(1) 报错:`ORA-12541: TNS:no listener`** - **原因**:数据库监听未启动或端口被防火墙拦截。 - **解决**: ```bash # 检查监听状态 lsnrctl status # 启动监听 lsnrctl start ``` #### **(2) 报错:`ORA-12154: TNS:could not resolve the connect identifier`** - **原因**:TNS 别名配置错误或文件路径不正确。 - **解决**: - 检查 `tnsnames.ora` 文件是否存在且语法正确。 - 确保环境变量 `TNS_ADMIN` 指向 `tnsnames.ora` 所在目录。 #### **(3) 报错:`sqlplus: command not found`** - **原因**:未安装 Oracle 客户端或环境变量未配置。 - **解决**: ```bash # 安装 Oracle Instant Client(示例为 Ubuntu/Debian) sudo apt-get install libsqlplus3 sqlplus # 配置环境变量 export ORACLE_HOME=/usr/lib/oracle/21/client64 export LD_LIBRARY_PATH=$ORACLE_HOME/lib export PATH=$PATH:$ORACLE_HOME/bin ``` --- ### **5. 其他工具** - **SQLcl**:Oracle 提供的轻量级命令行工具(支持语法高亮): ```bash sql scott/tiger@localhost:1521/orcl ``` - **SQL Developer**:图形化工具(需 GUI 环境)。 --- ### **附:常用操作示例** ```sql -- 查看当前用户 SHOW USER; -- 查询表数据 SELECT * FROM emp; -- 退出 SQL*Plus EXIT; ``` --- 通过以上命令和配置,可以灵活连接 Oracle 数据库。若需更复杂的配置(如 Kerberos 认证、SSL 加密),需参考 Oracle 官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值