一.环境(Windows7系统)
- 数据库:oracle11g 64位,mysql5.6 64位;
- 安装数据源驱动(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) - 检查是否安装了oracle透明网关,如下图所示:
二.安装
-
打开 Microsoft ODBC 管理员:
打开后选择系统DSN:
选择:
配置完成后点击完成就可以了,这样Mysql的ODBC就已经有了 -
接下来进行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添加。
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)
)
- 用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就只有创建者可以使用了.
- 测试
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