關於oracle通過dblink連接mysql,經過了兩周的空閑時間研究學習,終於配置好了,真是不容易啊,仔細想想的話,其實也沒花多長時間,就是剛開始走了一段彎路,所以把這次的經驗分享出來,讓大家少走些彎路,OK,閑話不多說了,開始配置旅程:
一:環境檢查:
數據庫:安裝oracle11g 64位,安裝mysql 5.6 64位,Windows7系統;
安裝數據源驅動(ODBC) 64位,Windows7系統;
數據源下載地址:http://pan.baidu.com/s/1dFeGUDr(我的百度雲盤內);
接下來需要檢查的是否安裝了oracle透明網關,如下圖所示:
二:檢查之后沒問題開始安裝:
(1)在開始菜單中搜索ODBC:
打開后選擇系統DSN:
選擇第一個就可以了
配置完成后點擊完成就可以了,這樣Mysql的ODBC就已經有了
(2)接下來進行oracle透明網關配置:
找到你的oracle的安裝目錄的initdg4odbc.ora文件(我安裝在E盤):
E:\app\Administrator\product\11.2.0\dbhome_1\hs\admin(這是我
安裝在E盤下面),然后復制一份,命名規則是:init+sid.ora,所以就是initmysqlodbc.ora;
然后打開initmysqlodbc.ora文件,添加如下內容:
HS_FDS_CONNECT_INFO = mysqlodbc 說明:和mysql的odbc保持一致
HS_FDS_TRACE_LEVEL = off 說明:需要調試時可以改為debug,調試完成改為off;
然后打開E:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN 的listener.ora文件:
# listener.ora Network Configuration File: E:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = E:\app\Administrator\product\11.2.0\dbhome_1) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:E:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll") ) ***(SID_DESC = (SID_NAME = MYSQLODBC) (ORACLE_HOME = E:\app\Administrator\product\11.2.0\dbhome_1) (PROGRAM = dg4odbc) )*** ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) ) ADR_BASE_LISTENER = E:\app\Administrator
帶星號字體為配置部分;。。。!!!粘貼時要注意,括號上和上邊下邊的對齊,否則啟動監聽報錯。。。!!!
然后重啟監服務,可以在service.msc里重啟,也可以使用命令lsnrctl stop ,lsnrctl start;
接下來打開tnsnames.ora(跟監聽配置文件在同一個目錄下)
# tnsnames.ora Network Configuration File: E:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora # Generated by Oracle configuration tools. LISTENER_ORCL = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ORACLR_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) (CONNECT_DATA = (SID = CLRExtProc) (PRESENTATION = RO) ) ) ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) **MYSQLODBC = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = mysqlodbc) ) (HS = OK) )**
帶星號字體為新添加的配置(mysqlodbc),保存;
最后用oracle連接工具創建dblink:
create database link mysqlodbc connect to "root" identified by "123456" using 'mysqlodbc';--注意使用單引號
- 1
- 1
測試一下是否能夠連接,提示連接成功說明能夠訪問mysql;
為了進一步驗證,我這里還做了新增數據的測試(不要忘記點擊提交按鈕,不然在mysql客戶端無法查到數據):
然后再次查詢,能查得到:
接着我再到mysql去查詢,也能查到:
到這里已經將所有的配置完成