|
|
本帖最后由 likeyouli 于 2025-7-16 17:13 编辑
再次研究感受:安装完pl/sql developer后,貌似默认是无法连接虚拟机中的数据库的,也就是说如果主机中没有安装数据库,只安装了pl/sql developer,无法进行远程连接,需要进入pl/sql developer,设置里设置好oci.dll,否则无法远程连接。另外,如果出现乱码的情况,环境变量设置,新建一个,变量名NLS_LANG,变量值SIMPLIFIED CHINESE_CHINA.ZHS16GBK(simplified与chinese之间有空格)即可。
--------------------------------------------------------------------------------------------
研究了好久,才终于连接上了这两个数据库. 这两个数据库分别装在虚拟机vmware两个win10系统上,估计一个win系统也无法装两个不同版本的oracle数据库吧.
①虚拟机设置: 网络选择的nat模式,既可以使虚拟机上网,也可以与主机在一个局域网内,关闭用户登录密码,关闭防火墙,主机与虚拟机之间互相能ping通;
②主机连接虚拟机之前, 一要测试用虚拟机的sqlplus等客户端,连一下虚拟机自己的oracle数据库,看看能否连接;即便能够连接,也要用数据库自带的"Net Configuration Assistant",重新走一遍"监听程序配置",或终止监听服务再重新启动,切记切记, 我就是在这里遇到大麻烦, 好多次连不上报错以为是自己设置问题呢,其实就是监听没有重新启动一下;
③遇到的坑:提示ORA-28040:没有匹配的验证协议(用11g自带的sqlplus连接的) ,见这里https://www.jb51.net/database/3182989nq.htm,我在sqlnet.ora中加上了SQLNET.ALLOWED_LOGON_VERSION_SERVER=11和 SQLNET.ALLOWED_LOGON_VERSION_CLINET=11, 加上后,从原来的提示协议不匹配,转为提示"用户名/口令无效; 登录被拒绝",最后这两句代码也没删,没感觉有啥影响.
④11g与19c用的"oci.dll"不一样,③中遇到的问题,如果改用navicat for oracle客户端连接,且在工具\选项.环境里,选择我网盘中(其实都是官网下载的,可以直接去官网下载,但官网太多,不知道下载哪个)"instantclient_19_23\oci.dll",即可解决问题,也就是说用11g自带的oci.dll是无法连接19c的,我发的这个oci.dll既可以连接19c也可以11g, 见这里:https://pan.baidu.com/s/1di-Tr5RnZHwwMA8bYYOFZw?pwd=qcj6 提取码:qcj6
⑤11g 19c用到的listener.ora等几个监听配置文件,见附件.
⑥如果用pl/sql developer连接,在首选项里设置OCI库为I:\desktop\instantclient-basic-windows.x64-19.23.0.0.0dbru\instantclient_19_23\oci.dll,oracle主目录空着即可,登录填写方法:192.168.137.129/orcl;但会出现查询中文名字的表提示identifier is too long, 解决方法:系统设置,环境变量,系统变量、新建系统变量,变量名:NLS_LANG 变量值:AMERICAN_AMERICA.UTF8 (见这里https://blog.csdn.net/WMY1230/article/details/69372151)
|
评分
-
查看全部评分
|