修改数据库配置文件:tnsnames.ora 【我的数据库位置:D:\app\Icey-evil\product\11.2.0\dbhome_1\NETWORK\ADMIN】 根据服务器地址加入以下内容: - 10.88.250.28 =
- (DESCRIPTION =
- (ADDRESS_LIST =
- (ADDRESS = (PROTOCOL = TCP)(HOST = 10.88.250.28)(PORT = 1521))
- )
- (CONNECT_DATA =
- (SERVICE_NAME = ORCL)
- )
- )
复制代码说明:HOST = 10.88.250.28 是需要连接的oracle服务器 IP,SERVICE_NAME = ORCL是连接的数据库实例,PORT = 1521是oracle服务器监听端口。 配置完成,用PL/SQL Developer工具进行远程连接,database即为添加的tns服务名,这里是 10.88.250.28。 远程连接过程中出现的问题: 1.ORA-12638: 身份证明检索失败 解决方法: 查阅相关资料,说是将本地文件sqlnet.ora中的SQLNET.AUTHENTICATION_SERVICES= (NTS)注释掉,或者将其改为SQLNET.AUTHENTICATION_SERVICES= (NONE)。 按照以上方法将本地文件sqlnet.ora修改后,重新连接,依旧是ORA-12638。 个人将服务器上的文件sqlnet.ora中的SQLNET.AUTHENTICATION_SERVICES= (NTS) 改为SQLNET.AUTHENTICATION_SERVICES= (NONE)后重新连接,连接成功。 综上来看呢,好像是SQLNET.AUTHENTICATION_SERVICES的问题,可是呢在PL/SQL Developer连接出现ORA-12638时,有用Navicat Premium进行远程连接Oracle,连接是成功的,所以呢,在PL/SQL Developer远程连接成功后,又将服务器上文件sqlnet.ora中SQLNET.AUTHENTICATION_SERVICES= (NONE)改回SQLNET.AUTHENTICATION_SERVICES= (NTS),此时按理说,PL/SQL Developer远程连接依旧会是ORA-12638,事实是连接成功!所以......无解... 【SQLNET.AUTHENTICATION_SERVICES 表示oracle使用哪种验证方式,NTS表示采用本地操作系统认证,NONE表示将采用口令文件方式认证。设定了none后,本地的操作系统认证将不被许可,oracle将采用口令文件认证】 2. PL/SQL Developer登陆后提示: Database character set (AL32UTF8) and Client character set (ZHS16GBK) are different.Character set conversion may cause unexpected results.Note: you can set the client character set through the NLS_LANG environment variable or the NLS_LANG registry key inHKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1.解决方法:修改注册表 win+r —> cmd —>regedit —>enter; 找到KEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1 【win 64位系统中在HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_OraDb11g_home1,Wow64放的是64位操作系统下安装的32位程序】 找到 NLS_LANG 键,原值是:SIMPLIFIED CHINESE_CHINA.ZHS16GBK 将其改为:SIMPLIFIED CHINESE_CHINA.AL32UTF8 重新打开PL/SQL Developer ,登录,Ok.
|