错误表现:
1、select * from good_0@mysqlodbc语句出现12154错误(未识别标识符)。
2、命令行tnsping mysqlodbc出现TNS-03505: 无法解析名称错误。
错误原因:
系统变量TNS_ADMIN指向E:\PLSQL Developer 12\ instantclient _12_2\network\admin。此路径为PLSQL developer 12软件安装包中的即时客户端instantclient软件,自定义文件夹network\admin,其中包含了tnsnames.ora文件。故服务名解析文件使用的是该处文件。而本人配置过程中修改的是E:\Oracle \product\11.2.0\dbhome_1\NETWORK\ADMIN中的tnsnames.ora文件。导致系统未能识别服务标识符mysqlodbc。
修改方法:
将系统变量TNS_ADMIN指向E:\Oracle \product\11.2.0\dbhome_1\NETWORK\ADMIN。配置E:\Oracle\product\11.2.0\dbhome_1\ NETWORK\ADMIN中的tnsnames.ora文件。并删除E:\PLSQL Developer 12\ instantclient _12_2\network\ admin文件夹。
系统变量指定的文件才是有效的。tnsnames.ora文件中的服务名对应服务不一定需要配置在本机的oracle服务端,这只是一个服务名解析文件,将对应服务名解析成IP端口地址等信息。