文档章节

Oracle与MySQL连接

A
 Aman_li
发布于 2016/03/28 15:03
字数 774
阅读 76
收藏 4

环境:oracle 11.2.0.1.0 RHEL5.3 64bit   mysql Server version: 5.5.9

1:下载[ODBC Driver Manager] unionODBC2.2.14,解压后放入/u01/app/tools/unionodbc  目录下

[oracle@wonder tools]$ ls /u01/app/tools/unionodbc/
bin  include  lib

2:下载mysql-connector-odbc-3.51.30-linux-rhel5-x86-64bit.tar.gz解压重命名到my5
 
[oracle@szmlserver12_32 tools]$ ls /u01/app/tools/
my5  odbc.ini  unionodbc

3:配置 ODBC data source for MySQLConnector/ODBC driver

[oracle@wonder tools]$ cat /u01/app/tools/odbc.ini 
[myodbc3]

Driver = /u01/app/tools/my5/lib/libmyodbc3.so
SERVER = 22.4.22.16
PORT = 3306
USER = soft
PASSWORD = Ugfd3589
DATABASE = estore
OPTION = 3
SOCKET = 

4:设置环境变量

[oracle@wonder tools]$ cat ~/.bash_profile 
PATH=$PATH:$HOME/bin
export PATH

export ORACLE_BASE=/u01/app
export ORACLE_HOME=/u01/app/oracle
export ORACLE_SID=hidb
export
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/u01/app/tools/unionodbc/lib
export ODBCINI=/u01/app/tools/odbc.ini
export PATH=$ORACLE_HOME/bin:$PATH:/u01/app/tools/unionodbc/bin

红色为新增部分

5:测试连接成功

[oracle@wonder tools]$ isql myodbc3 -v
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> 

6:配置listener.ora

[grid@wonder ~]$ cat /u01/app/11.2.0/grid/network/admin/listener.ora
# listener.ora Network Configuration File: /u01/app/11.2.0/grid/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = wonder.easou.com)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = /u01/app/11.2.0

ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON # line added by Agent
SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER=OFF

SID_LIST_LISTENER=
   (SID_LIST=
        (SID_DESC=
          (SID_NAME= myodbc3)
          (ORACLE_HOME= /u01/app/oracle)
           (PROGRAM = dg4odbc)
           (ENVS=LD_LIBRARY_PATH=/u01/app/oracle/bin:/u01/app/tools/unionodbc/lib:/u01/app/tools/my5/lib)
         )
       )

7:配置tnsnames.ora,最后增加如下内容

myodbc3=
  (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SID = myodbc3)
    )
(HS = OK)
  )

8:配置HS

[oracle@wonder tools]$ cat /u01/app/oracle/hs/admin/initmyodbc3.ora 

HS_FDS_CONNECT_INFO = myodbc3
HS_FDS_TRACE_LEVEL = off
HS_FDS_SHAREABLE_NAME = /u01/app/tools/unionodbc/lib/libodbc.so
HS_LANGUAGE=american_america.we8iso8859p1
HS_NLS_NCHAR=UCS2

#
# ODBC specific environment variables
#
set ODBCINI= /u01/app/tools/odbc.ini

9:重启监听

[grid@wonder ~]$ lsnrctl stop
[grid@wonder ~]$ lsnrctl start

10:配置DBLINK

create database link myodbc connect to "soft" identified by "Ugfd3589" using 'myodbc3';   --前面要双引号才不报错

SQL> select count(*) from "acct_user"@myodbc;


  COUNT(*)
----------

13

但是发现 select * from "acct_user"@myodbc 时,只会显示一条数据,晕倒了,经google发现,通过更新驱动可以得到解决

下面的步骤是在上面的基础上更换了最新ODBC 5.5.2解决了问题,以及一oracle主机连接2个mysql服务器例子:


下载mysql-connector-odbc-5.2.2-linux-glibc2.3-x86-64bit.tar
http://www.mysql.com/downloads/connector/odbc/#downloads

1:更换配置odbc.ini

[oracle@wonder hs]$ cat /u01/app/tools/odbc.ini
[mysql203]
Driver = /u01/app/tools/my5/lib/libmyodbc5w.so
SERVER = 120.2.93.3
PORT = 3306
USER = search_wei
PASSWORD = aaaa
DATABASE = search_wei
OPTION = 3
SOCKET = 

[mysql213]
Driver = /u01/app/tools/my5/lib/libmyodbc5w.so
SERVER = 125.91.0.213
PORT = 3306
USER = droid
PASSWORD = bbbb
DATABASE = droid
OPTION = 3
SOCKET =

2: hs/admin 中

[oracle@wonder hs]$ ls admin/
extproc.ora      initmysql203.ora  listener.ora.sample
initdg4odbc.ora  initmysql213.ora  tnsnames.ora.sample

[oracle@wonder hs]$ cat admin/initmysql213.ora 

HS_FDS_CONNECT_INFO = mysql213
HS_FDS_TRACE_LEVEL = debug
HS_FDS_SHAREABLE_NAME = /u01/app/tools/unionodbc/lib/libodbc.so
HS_LANGUAGE=american_america.we8iso8859p1
HS_NLS_NCHAR=UCS2
#SELECT NULL COLUMN
HS_FDS_SQLLEN_INTERPRETATION = 32 
#DIRECT ACESS MYSQL INT COLUM
HS_FDS_FETCH_ROWS=1
set ODBCINI= /u01/app/tools/odbc.ini

[oracle@wonder hs]$ cat admin/initmysql203.ora 

HS_FDS_CONNECT_INFO = mysql203
HS_FDS_TRACE_LEVEL = debug
HS_FDS_SHAREABLE_NAME = /u01/app/tools/unionodbc/lib/libodbc.so
HS_LANGUAGE=american_america.we8iso8859p1
HS_NLS_NCHAR=UCS2
set ODBCINI= /u01/app/tools/odbc.ini

3: tnsnames.ora


mysql213=
  (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SID = mysql213)
    )
        (HS = OK)
  )

mysql203=
  (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SID = mysql203)
    )
        (HS = OK)
  )

4: listener.ora

SID_LIST_LISTENER=
   (SID_LIST=
        (SID_DESC=
          (SID_NAME= mysql203)
          (ORACLE_HOME= /u01/app/oracle)
           (PROGRAM = dg4odbc)
           (ENVS=LD_LIBRARY_PATH=/u01/app/oracle/bin:/u01/app/tools/unionodbc/lib:/u01/app/tools/my5/lib)
         )
        (SID_DESC=
          (SID_NAME= mysql213)
          (ORACLE_HOME= /u01/app/oracle)
           (PROGRAM = dg4odbc)
           (ENVS=LD_LIBRARY_PATH=/u01/app/oracle/bin:/u01/app/tools/unionodbc/lib:/u01/app/tools/my5/lib)
         )
       )

5:重启监听

6:分别建立到3和203的dblink,验证通过

create database link mysql203 connect to "search_wei" identified by "aaaa" using 'mysql203';

select * from "t_info_stat"@mysql203;

SQL> create database link mysql213 connect to "droid" identified by "bbbb" using 'mysql213';

select * from "ums_module"@mysql213;


哈哈!大功搞成!


© 著作权归作者所有

下一篇: JDBC和ODBC
A
粉丝 1
博文 6
码字总数 10165
作品 0
深圳
私信 提问
13.2 连接mysql

连接mysql 本地连接——>即使没有指定,但默认使用sock连接,使用/tmp/mysql.sock连接 mysql -uroot -p123456 //输入用户名和密码连接本机 使用ip端口连接远程机器 mysql -uroot -p123456 -h...

运维小白
2018/01/12
0
0
【CentOS 7MySQL常用操作2】,连接MySQL#180112

hellopasswd --- 连接MySQL mysql -uroot -p123 mysql -uroot -p123 -h127.0.0.1 -P3306 mysql -uroot -p123 -S/tmp/mysql.sock mysql -uroot -p123 -e "show databases" 使用本地ip指定端口......

hellopasswd
2018/01/12
0
0
Oracle与MySQL的几点区别

摘要:Oracle数据库与MySQL数据库的区别是本文我们主要要介绍的内容,接下来我们就开始介绍这部分内容,希望能够对您有所帮助。 Oracle与MySQL的区别: 1.在Oracle中用select from all_users...

可淘淘
2011/12/14
0
2
Oracle SQL Developer 连接 MySQL

Oracle SQL Developer 连接 MySQL Oracle SQL Developer 是非常强悍的开源的SQL开发工具, 可惜最近我才开始研究它, 刚安装好的OracleSQL Developer 是不支持连接MySQL的, 需要从MySQL官网下载...

xxl714
2015/05/13
0
0
数据库迁移之Mysql迁移Oracle

在Mysql中,数据库和用户之间的关系不是特别明显,只要我们链接到Mysql服务器,可以看到所有的数据库和表,而Oracle新建一个是没有任何资源和权限的,需要我们为其分配资源权限,也可以在这个...

vectording
2014/03/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring系列教程八: Spring实现事务的两种方式

一、 Spring事务概念: 事务是一系列的动作,它们综合在一起才是一个完整的工作单元,这些动作必须全部完成,如果有一个失败的话,那么事务就会回滚到最开始的状态,仿佛什么都没发生过一样。...

我叫小糖主
今天
5
0
CentOS 的基本使用

1. 使用 sudo 命令, 可以以 root 身份执行命令, 必须要在 /etc/sudoers 中定义普通用户 2. 设置 阿里云 yum 镜像, 参考 https://opsx.alibaba.com/mirror # 备份mv /etc/yum.repos.d/CentO...

北漂的我
昨天
2
0
Proxmox VE技巧 移除PVE “没有有效订阅” 的弹窗提示

登陆的时候提示没有有效的订阅You do not have a valid subscription for this server. Please visit www.proxmox.com to get a list of available options. 用的是免费版的,所以每次都提示......

以谁为师
昨天
3
0
Java设计模式之外观模式(门面模式)

什么是外观模式   外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口...

须臾之余
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部