本来只是想让java程序连接实验室里面的oracle数据库的,结果发现连了好一会儿都没有连接成功,以前没有怎么接触过oracle数据库,在网上找了好久的原因,还是一直报这个错误:
Exception in thread "main" java.sql.SQLException: Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=185599488)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4)))) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333) at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:404) at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:468) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at first.Test2.main(Test2.java:35)
后来经过与实验室兄弟讨论之后才找到原因,出现以上错误的原因在于连接数据库的时候,要么是数据库实例名错误,要么就是用户名错误,要么就是密码错误,总之,错误会出现在这一条语句里面:
Connection conn = DriverManager.getConnection(url,user,pwd);
在这里最容易出错的是url,我的错误就出现在这里,url的格式是应该是这样的:
jdbc:oracle:thin:@数据库所在的IP地址:端口号:数据库实例
注意了,这里对于初次接触oracle数据库的童鞋们来说最容易将数据库的实例名写成表空间的名字。
我参考了以下几篇资料在64位 Win7的机器上进行oracle11g数据库单机版的配置之后,终于算是初步认识到了oracle数据库:
Oracle数据库一系列安装:http://wenku.baidu.com/view/a163c84ae518964bcf847c8c.html
怎样访问oracle数据库:http://www.codesky.net/article/201111/166747.html
下面将数据库全局名称、服务名、数据库实例、表空间、表、角色、用户等基本概念分清楚一下:
1、我们刚开始安装oracle数据库的时候,系统会要我们跟数据库起一个全局名称,这个全局数据库名跟SID(系统标识符)是一致的,跟数据库的实例名称是一样的,除了oracle实时应用集群之外,一个数据库一般只对应一个数据库实例;
2、服务名,是对外公布的名称,用于网络监听服务,一个数据库可以设置多个服务名,这个要在集群中才能充分的体现出来,对于本地的服务名的配置可以在oracle数据库的客户端中Net Manager中进行配置,在Net Manager中配置完成之后就会在oracle数据库文件tnsnames.ora中马上增加类似的内容:
ORCL202 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.201)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) )
其中ORCL202是在Net Manager中配置的新的服务名,SERVICE_NAME = orcl其实就是SID,SID也是INSTANCE_NAME,SERVICE_NAMES,主要用在监听器中。
3、安装完数据库等一系列东西之后,我们可以通过访问Enterprise Manager Database Control URL来进行数据库的监控,在这个网址中我们可以设置数据库的表空间和角色,表空间就相当于mySQL中的数据库,这里不同的是,每个用户都必须对应一个表空间。
4、Oracle的用户一般分为两种,一种是数据库在安装的时候系统自动创建的用户,另一类是利用系统用户创建的普通用户,创建普通用户的时候,可以对其用户进行相应的权限配置。
最后根据我个人经历需要注意以下几点:
1、oracle数据库安装文件里面有很多东西,其中在java要进行连接的驱动也在里面。
2、同一个表空间可以对应不同的用户。 但一个用户只能指定一个表空间和临时表空间。
3、Oracle数据库客户端只是针对于PLSQL Developer进行本地访问的时候起到一个映射的作用,当我们在java程序里面要与数据库进行连接的时候,就只能写数据库所在的IP地址和端口号,而不能只写主机字符串(即本地的数据库服务名)。
PS
参考资料有:
http://www.knowsky.com/385421.html
http://www.cnwebshow.com/bc/article_61379.html
相关推荐
【Oracle安装-卸载-初识Oracle-笔记】 Oracle是一种广泛应用的关系型数据库管理系统,尤其在企业级应用中占据重要地位。对于初次接触Oracle的人来说,理解其安装、卸载过程及基本操作是至关重要的。 一、下载地址 ...
实验一“初识Oracle Database 12c1”旨在让学生深入了解Oracle数据库系统,特别是Oracle 12c的新特性和安装过程。Oracle数据库是一个复杂且功能强大的关系型数据库管理系统,广泛应用于企业级数据存储和管理。 实验...
【初识Oracle 11g】是针对Oracle数据库系统的基础介绍,主要涵盖了Oracle的历史发展、11g的新特性以及安装过程。Oracle自1977年成立以来,经过多个版本的迭代,逐步发展成为全球领先的数据库管理系统。Oracle 11g在...
这篇初识Oracle 11g的文章将带我们深入了解这个强大的数据库系统。 1. **Oracle 11g的核心特性** - **自动存储管理 (Automatic Storage Management, ASM)**: Oracle 11g引入了ASM,它简化了数据存储的管理,通过...
Oracle第2章初识Oracle11g.pptx
Oracle11g教程_第2章_初识Oracle11g,PPT格式,介绍的比较详细,适合快速了解
Oracle 11g是Oracle公司推出的一个重要数据库管理系统版本,具有丰富的特性和强大的功能。本教程旨在引导初学者深入理解Oracle 11g的基础知识,包括其发展历程、新特性、体系结构、安装流程以及PL/SQL语言基础。 ...
Oracle 数据库的审计功能是其安全性的重要组成部分,它允许管理员追踪和记录数据库中发生的关键活动。审计可以帮助确保合规性,防止未授权访问,以及在出现问题时提供可追溯性。以下是对Oracle审计功能的深入理解: ...
Oracle数据库的审计功能是用于监控和记录数据库活动的重要工具,帮助管理员追踪和分析数据库的使用情况,确保数据安全和合规性。以下是对Oracle审计功能的详细介绍: 一、审计的效果 Oracle审计可以记录所有对...
Oracle 启动过程是 Oracle 数据库的核心组件之一,对于初识 Oracle 的人来说,了解 Oracle 启动过程非常重要。本文将详细解释 Oracle 启动过程的三个步骤:启动数据库到 Nomount 状态、启动数据库到 Mount 状态和...
《初识Oracle数据库11g管理:从新手到专业》这本书是专为那些希望深入了解Oracle数据库11g管理的读者而准备的。Oracle 11g是Oracle公司的一个重要数据库版本,提供了诸多新特性和增强功能,使得数据库管理更加高效、...
- **初识Oracle**: 作者初次接触Oracle是在1988年左右,当时的版本是5.0.22,这标志着Oracle关系型数据库管理系统(RDBMS)的早期发展阶段。 - **文档对比**: 当年的Oracle文档简洁明了,所有资料装入一个小型公文包...
第一步,初识Oracle,这包括了解Oracle Database的基本概念、体系结构以及DBA的日常职责。Oracle Database是一个复杂的数据库管理系统,其体系结构包含了内存结构、后台进程、存储结构等重要组成部分。DBA的主要任务...