oracle gateway for mysql_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位系统

043c2c7a393a3fe104eff42fc30fd746.png

打开ODBC数据源

c8e4ee39c6a8c0e4aa7212a7bb4a50ee.png

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

6c73181eddde6e526754dbd9e3fc5e86.png

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

若安装ODBC报此错误

54b5305011d7a5777d2981e573cdc794.png

则需要安装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的配置

555a293df8ba443d83901740a75ac09a.png

三、配置透明网关

在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: 表或视图不存在:

ce4d80867e4e582fc0ecad44f01677a5.png

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

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值