Oracle通过ODBC连接MySql(全windows下)

时间:2024-03-31 14:19:07

一.环境(Windows7系统)

  1. 数据库:oracle11g 64位,mysql5.6 64位;
  2. 安装数据源驱动(ODBC)64位(mysql-connector-odbc-8.0.15-winx64.msi)
    安装时若报错:this application requires visual studio 2015 x64 redistributable.please install the redistributable then run this installer again.请安装:vc_redist.x64.exe(下载地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=48145&44F86079-8679-400C-BFF2-9CA5F2BCBDFC=1)
  3. 检查是否安装了oracle透明网关,如下图所示:Oracle通过ODBC连接MySql(全windows下)

二.安装

  1. 打开 Microsoft ODBC 管理员:
    Oracle通过ODBC连接MySql(全windows下)
    打开后选择系统DSN:
    Oracle通过ODBC连接MySql(全windows下)
    选择:
    Oracle通过ODBC连接MySql(全windows下)Oracle通过ODBC连接MySql(全windows下)
    配置完成后点击完成就可以了,这样Mysql的ODBC就已经有了

  2. 接下来进行oracle透明网关配置:
    (1)找到oracle的安装目录的initdg4odbc.ora文件(我安装在F盘):
    F:\app\admin\product\11.2.0\dbhome_1\hs\admin\initdg4odbc.ora
    打开initdg4odbc.ora文件,添加如下内容:

    HS_FDS_CONNECT_INFO = dg4odbc 说明:和mysql的odbc保持一致 
    HS_FDS_TRACE_LEVEL = off 说明:需要调试时可以改为debug,调试完成改为off;
    

    (2)配置listener.ora
    (目录:F:\app\admin\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora)

    a)添加一个监听。端口1521用于监听正常的进程,1522用于监听mysql数据库的进程。可以使用页面图形添加,也可以在listener.ora添加。
    Oracle通过ODBC连接MySql(全windows下)

    b) 添加SID_LIST_LISTENER1

所以,listener.ora一共添加如下代码:

SID_LIST_LISTENER1 =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = dg4odbc)
      (ORACLE_HOME = F:\app\admin\product\11.2.0\dbhome_1)
      (PROGRAM = dg4odbc)
    )
  )

LISTENER1 =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = john1-john)(PORT = 1522))
    )
  )

ADR_BASE_LISTENER1 = F:\app\admin

(3)配置tnsnames.ora(目录:F:\app\admin\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora),添加如下代码:

dg4odbc =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1522))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = dg4odbc)
    )
    (HS = OK)
  )
  1. 用oracle连接工具创建dblink,使用管理员身份用户执行:
create database link dg4odbc connect to "root" identified by "123456" using 'dg4odbc';--注意使用单引号

或者
先用管理员身份用户对业务用户授权:

grant create database link to scott;

再用scott用户创建dblink

create database link dg4odbc connect to "root" identified by "123456" using 'dg4odbc';--注意使用单引号

这样业务用户就能直接使用创建的dblink了。

注:如果在create之后加public(即create pubic database link……),则创建的dblink就是公共的,不加public就只有创建者可以使用了.

  1. 测试
select * from [email protected];
select * from [email protected];
insert into [email protected]"dg4odbc" values (2, '你好');
select m.*,m."aaa",m."bBb" from [email protected] m --注意区分大小写,否则报错:Oracle ORA-00904:"xxx": 标识符无效

大功告成。


原文参考:https://blog.csdn.net/weixin_42273775/article/details/81357452