ITPub博客

首页 > Linux操作系统 > Linux操作系统 > [ Oracle -- How To ] 连接MySQL数据库

[ Oracle -- How To ] 连接MySQL数据库

原创 Linux操作系统 作者:langzhi000 时间:2010-06-10 17:16:39 0 删除 编辑

1.环境准备
 1) 在server端授予相应的权限
      grant all privileges on *.* to KEVIN@xx.xx.xx.xx identified by "KEVIN"
      注:用户名和密码都大写,因为oracle连接时默认是大写
              或者在创建dblink时使用双引号
 2) 安装mysql客户端
      这步省略....
 3) 编辑/etc/odbc.ini
      [kevin]
      driver=/usr/lib/libmyodbc3.so
      description=mysql
      server=192.168.1.100  // MySQL 服务器的ip地址
      port=5000
      user=oracle
      uid=oracle
      password=KEVIN
      database=KEVIN
      ption=3
      socket=
 4) 测试
             isql -v kelvin
      出现以下界面机成功
        +---------------------------------------+
         | Connected!                            |
         |                                       |
         | sql-statement                         |
         | help [tablename]                      |
         | quit                                  |
         |                                       |
         +---------------------------------------+
        SQL>


2.编辑oracle
 1) 编辑HS参数文件($ORACLE_HOME/hs/admin),添加以下内容
      HS_FDS_CONNECT_INFO= kevin                                                               
      HS_FDS_TRACE_LEVEL = on                                                        
      HS_FDS_TRACE_FILE_NAME = kevin.trc                              
      HS_FDS_SHAREABLE_NAME=/usr/lib/libmyodbc3.so    
  2) 环境变量
       vi .bash_profile 添加或更新一下内容
       export DBCINI=/etc/odbc.ini    
  3) 编辑listener.ora
     添加以下内容:
     (SID_DESC=                                                                                                                                  (SID_NAME = test)   
             (ORACLE_HOME = /oracle/product/10.2)
             (PROGRAM = hsodbc)
             (ENVS=LD_LIBRARY_PATH=/oracle/product/10.2/lib32:usr/lib:/oracle/product/10.2/lib)
      )  

  4) 编辑tnsnames.ora
       添加以下内容:
       tomysql=                                                                                                                  
          (DESCRIPTION =                                                  
              (ADDRESS_LIST =                                               
                 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.200)(PORT=1521))  //oracle 服务器的ip地址
              )                                                             
              (CONNECT_DATA =                                               
                 (SID=kevin)                                                   
              )   
            (HS=OK)                                                         
          )     
       注:ip为本机监听的ip地址
  5) 创建dblink连接到mysql
       create database link tomysql
       connect kelvin identified by kevin
       using 'tomysql';

 
3.连接测试
   select * from "test"@tomysql;
    注:使用双引号是oracle默认将表名大写,但是mysql大小写敏感
 
4.测试结果:
  1) select * from "test"@tomysql;
       结果:OK
  2) insert into test select * from "test"@tomysql;
       结果:OK
  3) insert into "test"@tomysql select * from test;
       结果: Failed
  4) procedure
       内容:
           create or replace procedure to_mysql
            is
               v_x int;
               v_y int;
            begin
                      select x,y into v_x,v_y from test;
                      insert into "test"@tomysql
                      values(v_x,v_y);
           end;
           /
        结果:OK        
  5) 事务性
        MyISAM无事务性
        Innodb可实现事务,前提是打开binlog且设置参数binlog_format=mixed
        1) oracle insert
             mysql端看不到数据,仅等oracle端commit之后才可见
        2) mysql端,关闭自动提交之后
            oracle也可见数据,当等mysql端rollback之后,数据又不可见

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/14492307/viewspace-664927/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-07-28

  • 博文量
    1
  • 访问量
    5989