plsql 连接mysql数据库连接_PLSQL连接ORACLE数据库--摘自别人

1、连接数据库时,报告监听器不存在。

刚开始很郁闷,我客户端明明已经配置了监听程序了。结果百度发现,服务器也有个监听器,但是并没有启动。这才去启动服务器的监听器,当然监听器的工作原理现在先抛开不深究。启动命令:

[oracle @ centos ~ ]$ lsnrctl start

2、配置服务命名概念不清晰

在配置服务命名的是时候,可能很多初学者想我这样不知道服务名是什么东西。下面看一下oracle服务器监听器的一段脚本就明白了。

ORCL =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.242.120)(PORT= 1521))

)

)

该文件在$ORACLE_HOME/network/admin下面的监听器配置文件listener.ora里面。其中ORCL就是传说中的服务名。

3、配置完服务命名之后,测试连接数据失败

这里默认是用scott用户连接oracle数据库,默认密码为tiger。但是客户端提示连接失败,最后在oracle服务器用sqlplus “/as sysdba”登陆到oracle查询不到scott用户,这个可能是在创建实例的时候没有创建。所以这里得新建一个scott用户,为什么非得要scott用户登录呢?这个先不做讨论。

4、如何新建scott用户

新建scott用户不只是就单单创建一个用户而已,它还有很多测试数据可提供使用,这里oracle自己有一个脚本用于创建scott用户及创建测试表,这就是为什么要用scott用户登录的原因。该脚本在服务器的$ORACLE_HOME/rdbms/admin/目录下面,脚本文件名称为utlsampl.sql,网上有说是scott.sql其实该目录不存在scott.sql这个脚本。有了这个脚本如何在sqlplus里面执行?用什么用户执行?

5、在sqlplus执行脚本

在sqlplus执行sql脚本如下:

SQL> @$ORACLE_HOME/rdbms/admin/utlsampl.sql

这里必须把$ORACLE_HOME替换成具体的路径,用shell命令echo$ORACLE_HOME可以看到该环境变量的值。

执行完后,显示如下信息:

SQL>@/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/admin/utlsampl.sql

Disconnected from Oracle Database Enterprise Edition Release11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real ApplicationTesting options

开始我以为是执行不成功,可是又没什么successfully之类的成功提示。所以只能用scott/tiger登录sqlplus看是否能否登录成功,如果成功那么这个脚本就已经成功的执行了。

6、忘记sys和system密码

在执行utlsampl.sql的时候,其实没有我上面描述的那么顺利,因为我把sys和system的密码给忘了,因为ORCL实例是半年前创建的,当时也没做个文档把用户名和密码记下来。所以这里只能去修改这两个用户的密码,如何修改密码,如下所示:

[oracle@centos ~ ]$ sqlplus /nolog

SQL>connect “/as” sysdba

SQL>alter user sys identifiedby sys;

SQL>alter user systemidentified by system;

把sys和system用户的密码都修改为和各自的用户名一样。修改完后,试着用这两个用户去登陆oracle数据库。

[oracle@centos ~ ]$ sqlplussys/sys as sysdba

[oracle@centos ~ ]$ sqlplessystem/system

都可以进入sqlplus,说明修改已经生效了。执行utlsamp.sql这个脚本需要sys用户和system用户去执行。

经过了这个过程后,在配置net manager的最后一步,即以scott用户测试与oracle实例的连通性的时候,才连接测试成功了。然后再PL/SQL检测到配置成功的服务名ORCL,才能用PL/SQL连接到数据库。

注:文章不免有些不足的地方,欢迎指出,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值