ora28500 mysql_Oracle使用 ODBC+DBLINK 访问 Mysql

接到一个需求要在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]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/543294.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js客户端存储之Web存储

WEB存储 客户端存储有几种方式,WEB存储就是其中一种。最初作为H5的一部分被定义成API形式,后来被剥离出来作为独立的标准。所描述的API包含localStorage对象和sessionStorage对象,这两个对象实际都代表同一个Storage对象,是持久化…

直播软件自动化测试,基于SRS-Bench工具的直播平台性能测试

摘要:性能测试通过自动化的测试工具模拟正常、异常场景来对系统的各项性能指标进行测试。通过性能测试可以分析一个系统能力、瓶颈、关键问题等。本文结合直播平台的部分场景,使用开源SRS-Bench工具对直播并的4个场景进行压力测试,测试直播平…

pythontype函数使用_Python astype(np.float)函数使用方法解析

Python astype(np.float)函数使用方法解析 我的数据库如图结构我取了其中的name age nr,做成array,只要所取数据存在str型,那么取出的数据,全部转化为str型,也就是array阵列的元素全是str,不管数据库定义的…

多线程的概述(一)

程序 :由源代码生成的可执行应用 QQ.app 进程 :一个正在运行的程序可以看作是一个进程,拥有独立运行所需的全部资源线程 :程序中独立运行的代码段一个进程是由一个或多个线程组成。进程只负责资源的调度和分配,线程才是…

python中缩进在程序中_python代码缩进

习惯了java,c之类的宽容,初学python,被它摆了道下马威,写if else,竟然必须要我正确用缩进格式,原来在python里不能用括号来表示语句块,也不能用开始/结束标志符来表示,而是靠缩进来表…

软件测试项目计划书总结,软件测试项目计划书.doc

PAGEPAGE 11HM项目计划书项目组长:王菁菁项目组成员:李应琴 张桦 李小兰 张力芳1概述产品简介为加强中国光大银行零售业务基础性建设、提升客户群体规模,借助近年来房地产市场蓬勃发展的机遇,总行决定开展物业专项维修资金业务&am…

python修改密码业务_Python: 修改LDAP密码

一个简单的用Python修改LDAP密码的程序,测试通过1. 首先要安装Python的LDAP包,在Ubuntu下面是:apt-get install python-ldap2. 例子代码:import ldap# 修改LDAP密码# uid: LDAP uid# oldpwd: 旧密码# newpwd: 新密码def change_pa…

C语言实现用户输入

用户输入一个字符串然后回车表示结束。因为用户在输入的过程中长度是不确定的&#xff0c;所以要求自己使用的循环写的更好。在这里自己写了一个代码&#xff0c;效率不高&#xff0c;相对来说如果能模拟出C中的vector向量可能会好一些。 1 #include <stdio.h>2 #include…

计算机硬件加速怎么开,显卡硬件加速,小编教你电脑怎么开启显卡硬件加速

小编之前是不知道怎么开启显卡硬件加速的&#xff0c;后来是朋友教我&#xff0c;才知道原来开启显卡硬件加速并不难操作。所以今天小编也将者开启的方法分享给小伙伴们。让你们也知道怎么开启硬件加速。显卡硬件加速有什么作用呢&#xff1f;其实开启了显卡硬件加速&#xff0…

um是代表什么意思_女生约会心里都想什么?女生约会举动代表什么意思

在和女生约会的全过程中&#xff0c;女生的思绪通常都较为细致&#xff0c;1个目光、1个行为、1个中停……都将会蕴含了無限的含意&#xff0c;男生们假如愿意取得成功将女生追到手&#xff0c;很必须剖析一下下女生约会心里都想干什么&#xff0c;女生约会举动代表什么意思&am…

ubuntu mysql开发_ubuntu linux mysql 开发模式与连接编译

【源码 测试】#include #include #include int main(void){MYSQL_RES *result;MYSQL_ROW row;MYSQL *connection, mysql;int state;mysql_init(&mysql);connection mysql_real_connect(&mysql,"localhost","root","951241","mysql…

浅谈浏览器http的缓存机制

针对浏览器的http缓存的分析也算是老生常谈了&#xff0c;每隔一段时间就会冒出一篇不错的文章&#xff0c;其原理也是各大公司面试时几乎必考的问题。 之所以还写一篇这样的文章&#xff0c;是因为近期都在搞新技术&#xff0c;想“回归”下基础&#xff0c;也希望尽量总结的更…

计算机故障检修课过时,第三场公开课|电脑故障维修以及笔记本知识科普

原标题&#xff1a;第三场公开课|电脑故障维修以及笔记本知识科普等待了漫长的一个星期&#xff0c; R&D又带着满满的干货和大家见面啦~你没看错&#xff01;&#xff01;这次R&D带来了两份大大的干货给大家分别是大家关心的 电脑故障维修问题以及大家想要了解的 笔记本…

为什么说python是计算机语言的未来_Python这么火,为什么说它不是未来的编程语言?...

本文转载自公众号“读芯术”(ID&#xff1a;AI_Discovery) Python这两年非常火&#xff0c;随处可见的广告让它逐渐变成了一种老少皆知的存在。 虽然问世几十年后&#xff0c;Python才得到编程社区的重视。 但是&#xff0c;其发展的势头似乎无人能及。自2010年年初以来&#x…

win 杀掉占用的端口_Windows netstat 查看端口、进程占用、杀掉进程

转载&#xff1a;http://ywsm.iteye.com/blog/510670http://58582786.blog.51cto.com/1550000/671487目标&#xff1a;在Windows环境下&#xff0c;用netstat命令查看某个端口号是否占用&#xff0c;为哪个进程所占用.操作&#xff1a;操作分为两步&#xff1a;(1)查看该端口被…

uniapp接收服务器消息,【教程】uniapp websocket实现消息推送

部分开发者在使用uniapp的过程中会用到websocket&#xff0c;但是uniapp框架提供的websocket服务并不是尽善尽美。我在这里为大家介绍一款第三方的websocket推送服务&#xff1a;GoEasy&#xff0c;完美支持uniapp。目前GoEasy提供完整的websocket前后端解决方案&#xff0c;简…

C++课程上 有关“指针” 的小结

上完了C的第二节课以后&#xff0c;觉得应该对这个内容进行一个小结&#xff0c;巩固知识点&#xff0c;并对我的心情进行了一个侧面烘托... 开始上课的老师&#xff1a; 正在上课的我&#xff1a; 上去敲代码的我&#xff1a; 过程是这样的&#xff1a; 下来的我&#xff1a; …

python安装路径查看_查看python安装路径及pip安装的包列表及路径

一、Linux系统 查看Python路径 whereis python 此命令将会列出系统所安装的所有版本的Python的路径效果如下&#xff1a;使用以下命令可分别查看Python2&#xff0c;Python3的安装路径 whereis python2 whereis python3 查看使用pip安装的软件包 默认Python3 pip list Python2查…

python循环10次_开发一个循环 5 次计算的小游戏, 设置随机种子为10,每次随机产生两个 1~10的数字以及随机选择...

开发一个循环 5 次计算的小游戏&#xff0c;设置随机种子为10&#xff0c;每次随机产生两个 1~10的数字以及随机选择“、-、*”运算符&#xff0c;构成一个表达式&#xff0c;让用户计算式子结果并输入结果&#xff0c;如果计算结果正确则加一分&#xff0c;如果计算结果错误不…

计算机有新的更新,现在是2018年,我的电脑最近总是弹出说有重要更新,提示自2017年5月9日后,microsoft - Microsoft Community...

您好&#xff0c;了解到您在更新系统时遇到问题。目前使用的版本是比较靠前的版本吗&#xff1f;要求进行更新的是Windows 10 1709 吧&#xff1f;您可以尝试使用Media Creation Tool创建ISO介质&#xff0c;并使用该介质进行升级安装&#xff0c;看下效果&#xff1a;https://…