转自 :小张小张自有主张
连接Oracle 12C出现 ORA-28040: No matching authentication protocol,没有匹配的验证协议。
没有匹配的验证协议
出现这个原因是因为你的Oracle连接客户端与服务端Oracle的版本不匹配造成的。
eeg:你的客户端是10g,但是数据库是Oracle 12C,就会出现这种问题。
以下是处理方式以及注意事项:
1.下载安装客户端工具PL/SQL,
2.下载12C的客户端。小张小张自有主张(原文作者)链接(64位)
instantclient-basic-windows.x64-12.2.0.1.0.zip
链接:https://pan.baidu.com/s/1WzcR9LNqesfKehrpXuPx1g
提取码:6xgn
各位,请你们注意,由于12C几乎都是64位版本的,所以,包括Oracle客户端以及PLSQL Developer12都必须是64位版本的。你们很多人大都是32位版本的,那个用不了,用了你们就会发现打开pl/sql时没有“连接为”这个选项。
(1)解压instantclient-basic-windows.x64-12.2.0.1.0.zip,并将解压出的instantclient_12_2放在任意指定目录.比如我的是D:\Oracle\instantclient_12_2
(2)配置监听文件,在instantclient_12_2文件下创建NETWORK文件夹,在NETWORK下创建ADMIN文件夹,在ADMIN文件夹中创建tnsnames.ora文件,编辑内容如下(这个是我的,你们根据自己实际使用配置),注意可配置多个监听,监听多个数据库实例.
DB_FZ=(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = COM)
)
)
(3)配置系统环境变量,就是windows那个,下面有截图。
-
变量名:ORACLE_HOME 变量值:D:\Oracle\instantclient_12_2----oracle主目录
-
变量名:TNS_ADMIN 变量值:D:\Oracle\instantclient_12_2\NETWORK\ADMIN-----tnsnames.ora所在目录
-
变量名: NLS_LANG 变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
-
修改Path变量,在后面添加 D:\Oracle\instantclient_12_2
只是一个示例,还有其他三个需要统一配置
以上配置好后,在tnsnames.ora配上数据库TNS,你们知道这是什么吧?
打开PLSQL Developer12,在Configure—>Preferences中配置如下(其实不配置也可以,因为配置了环境变量了,不过为了以防万一,还是配置下。)配置中的路径就是instantclient_12_2对应路径。
以上配置完成,再次打开PLSQL Developer12,连接,数据库,问题解决。
以上,谢谢。