接到一个需求要在oracle中访问MySql。

实现过程:

一、oracle主机上安装unixODBC      和mysql-connector-odbc驱动。

二、oracle中建立到MySQL的DBlink。

实验环境和驱动:

[OS Version]

Oracle Linux Server release 5.7

[ORACLE Version]

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

[MySql Version]:

MySQL 5.1.54-1

[ODBC Driver Manager]

unixODBC-2.2.14-linux-x86-64.tar.gz

[MySQL Connector/ODBC driver ]

mysql-connector-odbc-5.1.10-linux-rhel5-x86-64bit.tar.gz

驱动的安装和配置都在oracle的主机上进行。配置后要重启oracle监听。

Step1. 确定使用32/64-bits的驱动

$ file $ORACLE_HOME/bin/dg4odbc

/opt/ora11g/product/11.2.3/db_1/bin/dg4odbc:ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9,dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped

以上信息表明我们要使用64-bit的ODBC Driver Manager

Step 2 下载和安装 [ODBC Driver Manager] UnixODBC 2.2.14

url:http://sourceforge.net/projects/unixodbc/files/unixODBC/2.2.14/unixODBC-2.2.14-linux-x86-64.tar.gz/download

$ tar zxvfunixODBC-2.2.14-linux-x86-64.tar.gz

默认会解压到当前目录usr/local目录下,包含bin,include ,lib 三个目录

$ ls usr

bin include  lib

创建目录unixodbc-2.2.14

$ mkdir unixodbc-2.2.14

进入unixodbc-2.2.14

$ cd unixodbc-2.2.14

把 刚解压的 usr/local/目录 下的文件移动到unixodbc-2.2.14(注意不是/usr/local)

$ mv ~/tools/usr/local/*  .

$ ll

total 12

drwxr-xr-x 2oracle dba 4096 Nov 20  2008 bin

drwxr-xr-x 2 oracle dba 4096 Nov 20  2008 include

drwxr-xr-x 2 oracle dba 4096 Nov 20  2008 lib

$ cd ..

$ rm -r usr/

编辑profile文件,设置LD_LIBRARY_PATH

$ vi ~/.bash_profile

export LD_LIBRARY_PATH=/app/oracle/tools/unixodbc-2.2.14/lib

export PATH=/usr/sbin:/app/oracle/tools/unixodbc-2.2.14/bin:$PATH

$ source ~/.bash_profile

Step 3 下载和安装 [ODBC Driver]

url:http://www.mysql.com/downloads/connector/odbc/5.1.html

mysql-connector-odbc-3.51.30-linux-rhel5-x86-64bit.tar.gz

$ tar zxvfmysql-connector-odbc-3.51.30-linux-rhel5-x86-64bit.tar.gz

$ mvmysql-connector-odbc-5.1.10-linux-rhel5-x86-64bit   mysqlodbc_5.1.0

Step 4  配置 ODBC data source for MySQLConnector/ODBC driver

http://dev.mysql.com/doc/refman/5.5/en/connector-odbc-configuration-dsn-unix.html

创建odbc.ini

Database 指定的mysql数据库名区分大小写。

$ vi odbc.ini

[ Data Sources]

myodbc3    = MyODBC 3.51 Driver DSN

[myodbc3]

Driver      = /app/oracle/tools/mysqlodbc_3.51/lib/libmyodbc3.so

Description = Connector/ODBC 3.51 Driver DSN

SERVER      = 192.168.10.10

PORT        =3306

USER        =test_user

Password    =test_admin

Database    = test

OPTION      = 3

SOCKET      =

Step 5  oracle主机用isql测试oracle到mysql的连接

把odbc.ini加到环境变量中

$ vi  ~/.bash_profile

export ODBCINI=/app/oracle/tools/odbc.ini

$ source  ~/.bash_profile

$ cd unixodbc-2.2.14/bin/

[oracle@CNPEKVS43 bin]$  ./isql myodbc3 -v

+---------------------------------------+

| Connected!                 |

| sql-statement                |

| help [tablename]             |

| quit                       |

|                           |

+---------------------------------------+

Step6 配置 tnsnames.ora

Add the following line to  $ORACLE_HOME/network/admin/tnsnames.ora

myodbc3 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

(CONNECT_DATA =

(SID =myodbc3))

(HS=OK)

)

)

Step 7 配置 listener.ora

Open$ORACLE_HOME/network/admin/listener.ora

find SID_LIST_LISTENER definition and add anew entry for myodbc5

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = myodbc3)

(ORACLE_HOME =/opt/ora11g/product/11.2.3/db_1)

(PROGRAM = dg4odbc)

(ENVS=LD_LIBRARY_PATH=/app/oracle/tools/unixodbc-2.2.14/lib)

)

)

注意:ENVS=LD_LIBRARY_PATH一定要指到lib目录下,否则会出现下述错误

ERROR at line 1:

ORA-28500: connection from ORACLE to anon-Oracle system returned this message:

[unixODBC][Driver Manager]Can't open lib

'/app/oracle/tools/mysqlodbc_5.1.0/lib/libmyodbc5.so': libodbcinst.so.1:

cannot open shared object file: No suchfile or directory {01000}

ORA-02063: preceding 2 lines from MYODBC3

Step 8: 配置监听的初始化文件

This file does not exist and you have tocreate it.

vi $ORACLE_HOME/hs/admin/initmyodbc3.ora

HS_FDS_CONNECT_INFO = myodbc3

HS_FDS_TRACE_LEVEL =user

HS_FDS_SHAREABLE_NAME = /app/oracle/tools/unixodbc-2.2.14/lib/libodbc.so

set ODBCINI=/app/oracle/tools/odbc.ini

Step 9: 重启监听

$ lsnrctl stop

$ lsnrctl start

$ lsnrctl status

$ tnsping myodbc3

如果tnsping 有错误,检查listener.ora,tnsnames.ora

Step 10 创建dblink

SQL>create public database link myodbc3  connect to "mysql_user" identified by "password" using'myodbc3';

SQL> select * from"dual"@myodbc3;

[MOS]参考文档:

Detailed Overview of Connecting Oracle to MySQL Using DG4ODBC DatabaseLink [ID 1320645.1]

ora28500 mysql_Oracle使用 ODBC+DBLINK 访问 Mysql相关推荐

  1. Oracle 10g 中通过DBLink访问MySQL数据库

    前一阵在公司通过Oracle访问MySQL,测试环境:CentOS5_X64, Oracle10g_X64, MySQL5 . 把一些经验分享给大家! 1, 首先在Oracle所在计算机安装MySQL ...

  2. ODBC + WIN32 API 访问MYSQL 数据库实现简单QQ用户注册和登录 的代码分析

    ODBC + WIN32 API 访问MYSQL 数据库实现简单QQ用户注册和登录 的代码分析 . /   // datadase odbc1.cpp : 定义应用程序的入口点.  //   #inc ...

  3. oracle通过dblink连接mysql配置详解(全Windows下)

    oracle通过dblink连接mysql配置详解(全Windows下) 关于oracle通过dblink连接mysql,经过了两周的空闲时间研究学习,终于配置好了,真是不容易啊,仔细想想的话,其实也 ...

  4. [Oracle- MySQL] Oracle通过dblink连接MySQL

    [Oracle -> MySQL]  Oracle通过dblink连接MySQL  业务上有这么一个需求,需要把Oracle的一些数据同步到MySQL,如果每次都是手动同步的话,实在太麻烦,因此 ...

  5. Mysql —— linux下使用c语言访问mySql数据库

    示例1: #include<stdio.h> #include<mysql.h> int main() { MYSQL mysql; mysql_init(&mysql ...

  6. linux python连接oracle数据库_Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法...

    本文档主要描述了Linux下python数据库驱动的安装和配置,用来实现在Linux平台下通过python访问MySQL.Oracle.SQL Server数据库. 其中包括以下几个软件的安装及配置: ...

  7. sql2008能否打开mysql数据库_SQL Server 2008通过LinkServer访问MySQL数据库

    (中国软件网讯)怎样让SQL Server 2008数据库可以访问MySQL数据库的数据呢?其实这一实现的过程并不难,可以通过调用MySQL的ODBC驱动,在SQL Server中添加LinkServ ...

  8. php访问mysql函数吗,PHP访问MySQL数据库函数简介

    PHP访问MySQL数据库函数简介 PHP访问MySQL数据库函数简介 1. 进行数据库连接 连接数据库服务器,就是客户端向己运行的数据库服务器发出连接请求, 成功以后就可以对数据库进行相应操作,由于 ...

  9. vb访问mysql容易死机_VB访问MySQL

    最近研究的东西中, 有一部分涉及到用VB访问MySQL数据库, 今天研究了一下小有收获, 共享出来供大家参考首先下载 MySQL 的 ODBC 驱动, 我下载的是 MySQL ODBC 3.51 wi ...

最新文章

  1. 《面向模式的软件体系结构2-用于并发和网络化对象模式》读书笔记(3)--- 服务访问和配置模式...
  2. 虚拟机增强工具的安装
  3. RAID技术详细解答之一:入门基础篇
  4. arcgis python脚本实现从界面选择输入输出_ArcGIS Python脚本实现数据驱动页面的批量出图...
  5. java字节数_Java各种类型占用的字节数
  6. c#string倒数第二位插入字符_【转载】C#中string类使用Substring方法截取字符串
  7. 用简单的语言描述C++ 是什么?
  8. OpenCV3学习(11.4)斑点检测 SimpleBlobDetector
  9. koa如何实现Oauth2(一)
  10. 简易局域网聊天java_简单的局域网聊天程序(java版本的)
  11. linux 提升管理员权限命令,​cmd怎么用命令直接提升到管理员权限|cmd原有权限提升方法...
  12. linux中文字体不一致的解决方法
  13. 如何恢复扩展属性为u的linux文件,chattr - 修改文件在Linux第二扩展文件系统(E2fs)上的特有属性...
  14. 照相机模型与增强现实
  15. 同一局域网内手机访问电脑本地localhost网页
  16. java html5转pdf文件_Java 将Html转为PDF
  17. 黄页宝贝工具栏软件发布了
  18. Spring事务问题
  19. 智能电视局域网手机遥控实现
  20. 软件公司(Java)转正总结报告,仅供参考

热门文章

  1. antd 左右滑动_如何使用reactjs创建可滑动的侧边栏
  2. 【SSM面向CRUD编程专栏 3】关于黑马程序员最全SSM框架教程视频,P37集老师跳过的模块创建以及tomcat下载安装配置和运行等诸多问题
  3. 了解spring-boot-starter
  4. pip模块 redis、xlrd、xlutils、nnlog、requests
  5. 移动端 | Vue.js对比微信小程序基础语法
  6. Hazelcast发布Jet 0.6版本
  7. 元类编程--property动态属性
  8. atitit.atiOrmStoreService 框架的原理与设计 part1  概述与新特性
  9. Fix chrome 下flash crash的问题
  10. Format Currency Sample