使用Navicat Premium连接安装在ubantu16.04上的oracle数据库时,出现如下错误:
之前使用Navicat Premium连接windows平台下的oracle数据库时,也出现过这个错误,网上查了下解决办法如下:
第一步:
1、在oracle安装目录下查找listener.ora和tnsnames.ora这两个文件,然后用记事本打开。
在我的电脑上,windows平台下这两个配置文件的路径如下: D:\ProfessionalSoftware\Oracle11g\product\11.2.0\dbhome_1\NETWORK\ADMIN
在ubantu中,这两个配置文件的路径如下:
/home/cjh/tools/oracle11g/product/11.2.0/dbhome_1/network/admin
2、将HOST改为机器名(即计算机名),127.0.0.1.都试一下,哪个能用用哪一个。
在ubantu下,主机名可以执行hostname命令得到:
然后更改两个配置文件:
在windows更改操作和ubantu差不多。
3、在当前文件夹下的命令窗口,执行命令:lsnrctl stop,再执行lsnrctl start。
这一步是重新启动监听服务,在windows下也可以在服务程序里面重启oracle的监听服务。
图中标绿的是监听服务。
看下能否解决,能的话就不用进行下一步了。
第二步:
可能是navicat自带的oci.dll库不行,选择工具中的选项,然后点击其他,修改oci library的地址,制定oci的地址为Oracle数据库中的oci.dll。
步骤如下:
我的电脑上oracle的oci.dll文件路径如下:D:\ProfessionalSoftware\Oracle11g\product\11.2.0\dbhome_1\BIN\oci.dll
(这里我是将Navicat Premium的oci.dll文件覆盖了)
上图中的SQL*Plus选择的是oracle下的sqlplus.exe,在使用命令行的时候会调用。在我的电脑上的路径为:D:\ProfessionalSoftware\Oracle11g\product\11.2.0\dbhome_1\BIN
最后,说一linux上的oracle命令用来查阅Oracle数据库系统上的用户和创建时间,方便我们在Navicat Premium上创建连接。
select username,created from dba_users;
select username, DEFAULT_TABLESPACE from dba_users;