在Oracle中通过dblink访问MySQL数据库

简介

在之前的博客中已经配置过了,可以参考:https://www.xmmup.com/oracle-database-gatewaystoumingwangguandeanzhuanghepeizhi.html#Oracle_lian_jie_daoMySQL

Oracle使用DG4ODBC数据网关连接MySQL数据库,可以不用安装Gateways网关,其原理图如下:

从上图可知,Oracle连接MySQL需要涉及到如下组件:DG4ODBC, ODBC Driver Manager, ODBC Driver。

环境准备

1-- oracle 21c<br> 2docker rm -f ora21tomariadb<br> 3docker run -d --name ora21tomariadb -h lhroracle21c <br> 4  -v /sys/fs/cgroup:/sys/fs/cgroup <br> 5  --privileged=true lhrbest/oracle21c_ee_db_21.3.0.0 <br> 6  /usr/sbin/init<br> 7<br> 8-- 由于只读主目录特性,21c中的spfile、pfile、密码文件默认在$ORACLE_BASE/dbs目录下,例如:/u01/app/oracle/dbs下。<br> 9[oracle@lhroracle21c dbs]$ pwd<br>10/u01/app/oracle/dbs<br>11[oracle@lhroracle21c dbs]$ ll<br>12total 18308<br>13-rw-rw---- 1 oracle oinstall     1544 Mar 18 16:19 hc_LHRCDB.dat<br>14-rw-r----- 1 oracle oinstall      686 Mar 18 16:19 initLHRCDB.ora<br>15-rw-r----- 1 oracle oinstall       24 Aug 16  2021 lkLHRCDB<br>16-rw-r----- 1 oracle oinstall     2048 Aug 16  2021 orapwLHRCDB<br>17-rw-r----- 1 oracle oinstall 18726912 Aug 16  2021 snapcf_LHRCDB.f<br>18-rw-r----- 1 oracle oinstall     3584 Mar 18 17:01 spfileLHRCDB.ora<br>19[oracle@lhroracle21c dbs]$ <br>20<br>21<br>22<br>23<br>24<br>25-- mysql 8.1<br>26mkdir -p /etc/mysql/ora2mysql81/<br>27cat >  /etc/mysql/ora2mysql81/conf/my.cnf  use lhrdb;<br>48Database changed<br>49mysql> create table t1(id int);<br>50Query OK, 0 rows affected (0.02 sec)<br>51<br>52mysql> insert into t1 values(1);<br>53Query OK, 1 row affected (0.04 sec)<br>54<br>55<br>56<br>57<br>58<br>59[root@alldb ~]# mysql -uroot -plhr -h192.92.0.54 -P3306 -e "select now(),@@hostname,@@version;" <br>60mysql: [Warning] Using a password on the command line interface can be insecure.<br>61+---------------------+-------------+-----------+<br>62| now()               | @@hostname  | @@version |<br>63+---------------------+-------------+-----------+<br>64| 2024-03-18 16:23:35 | ora2mysql81 | 8.1.0     |<br>65+---------------------+-------------+-----------+<br>

2、MySQL的主机为192.92.0.54