oracle11G数据库db_link连接mysql配置(Windows下无需安装Gateway组件)

对于oralce db_link mysql数据库,从开始到写博客,花了2天时间,配置了2遍。第一遍网上找资料跟着配置,安装了Gateway for ODBC。第二遍把虚拟机系统重新做了,没有安装Gateway for ODBC,两次均成功。好了废话少说,进入正题。

一、系统环境

oracle客户端:win10系统,oralce client64位

oralce服务端:win10系统(虚拟机),oracle database64位

二、配置ODBC

检查oracle服务端是否有ODBC数据源驱动,因为我是64位系统

oracle11G数据库db_link连接mysql配置(Windows下无需安装Gateway组件)_第1张图片

打开ODBC数据源

oracle11G数据库db_link连接mysql配置(Windows下无需安装Gateway组件)_第2张图片

选择系统DSN,注意一定要选择系统DSN。

oracle11G数据库db_link连接mysql配置(Windows下无需安装Gateway组件)_第3张图片

选择数据源驱动,若此处没有mysql odbc,则需下载obdc,地址为:http://pan.baidu.com/s/1dFeGUDr(此驱动来自于CSDN的莫弃c的博客。),安装了此ODBC驱动,则无需安装Gateway for oracle,因为安装Gateway for oracle,还要给Gateway配置,有点烦。

若安装ODBC报此错误

oracle11G数据库db_link连接mysql配置(Windows下无需安装Gateway组件)_第4张图片

则需要安装Microsoft Visual C++。

下载地址: https://download.microsoft.com/download/3/2/2/3224B87F-CFA0-4E70-BDA3-3DE650EFEBA5/vcredist_x64.exe(64位的)

下载安装Microsoft Visual C++之后,再次安装mysql odbc,安装完成之后进行mysql odbc的配置

oracle11G数据库db_link连接mysql配置(Windows下无需安装Gateway组件)_第5张图片

 

 三、配置透明网关

在oralce服务端,找到安装目录,例如我的是E:\app\Administrator\product\11.2.0\dbhome_1

在此目录下找到hs\admin\initdg4odbc.ora复制一份,命名规则是:init+sid.ora,所以就是initmysqlodbc.ora

打开initmysqlodbc.ora文件,将默认的

HS_FDS_CONNECT_INFO =
HS_FDS_TRACE_LEVEL =

改为:

HS_FDS_CONNECT_INFO = mysqlodbc
HS_FDS_TRACE_LEVEL = off

然后返回到dbhome_1文件夹下,找到NETWORK\ADMIN\listener.ora

添加

(SID_DESC =
(SID_NAME = MYSQLODBC)
(ORACLE_HOME = E:\app\Administrator\product\11.2.0\dbhome_1)
(PROGRAM = dg4odbc) #注意dg4odbc不要改动
)

再打开tnsnames.ora

添加

MYSQLODBC =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = mysqlodbc)
)
(HS = OK)
)

然后重启监服务,可以在service.msc里重启,也可以使用命令

停止:lsnrctl stop ,

启动:lsnrctl start;

四、创建db_link并查询

create database link mysqlodbc connect to "root" identified by "密码" using 'mysqlodbc';--注意用户名密码双引号,using后面单引号。

五、进行查询

select * from "test"@mysqlodbc--注意oralce会自动将sql转换为大写,而mysql大小写是两张不同的表,所以在此要使用单引号以便在mysql中可以识别。

六、部分错误解决方案

1.ORA-28546: 连接初始化失败, 可能是 Net8 管理错误

 解决方案1:检查initmysqlodbc.ora文件

查看HS_FDS_CONNECT_INFO = mysqlodbc中的mysqlodbc是否与自己在ODBC数据源中所起的名称是否一致。

 解决方案2:检查自己是否没有重启监听服务

2.ORA-00942: 表或视图不存在: 

oracle11G数据库db_link连接mysql配置(Windows下无需安装Gateway组件)_第6张图片 

解决方案:查询sql语句,mysql的表一定要带双引号,否则Mysql无法识别。

 

 

后记:第一次配置的时候走了不少弯路,所以写下此篇文章以便有需要的人少走一点弯路。感谢CSDN的莫弃c,因为我配置是按照他博客的文章进行配置的,因此我此篇文章.ora里面的东西与他的文章一模一样。

莫弃c大神文章地址:http://blog.csdn.net/qq_29311303/article/details/53148566

 

转载于:https://www.cnblogs.com/zhaohongwei94wo/p/8574093.html

你可能感兴趣的:(oracle11G数据库db_link连接mysql配置(Windows下无需安装Gateway组件))