linux平台oracle连接mysql

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: 【前言】windows平台oracle连接mysql的方法已经给大家介绍过了,现在大部分的ORACLE和MySQL都是在LINUX平台上面,刚好最近也有这种需求,顺手把整个搭建过程记录起来和大家分享。

【前言】windows平台oracle连接mysql的方法已经给大家介绍过了,现在大部分的ORACLE和MySQL都是在LINUX平台上面,刚好最近也有这种需求,顺手把整个搭建过程记录起来和大家分享。

【原理】通过ODBC连接MySQL的原理图

img_df74eb97f4cb6d2a5d0720699d6dcab6.jpg

【说明】Driver Manager: 负责管理应用程序和驱动程序间的通信, 主要功能包括: 解析DSN (数据源名称,ODBC的数据源名称在ODBC.INI文件中配置), 加载和卸载驱动程序,处理ODBC调用,将其传递给驱动程序.

Connector/ODBC(MyODBC驱动程序):实现ODBC API所提供的功能, 它负责处理ODBC函数调用,将SQL请求提交给MySQL服务器,并将结果返回给应用程序.

ODBC.INI是ODBC配置文件,记录了连接到服务器所需的驱动信息和数据库信息。Driver Manager将使用它来确定加载哪个驱动程序(使用数据源名DSN)。驱动程序将根据指定的DSN来读取连接参数。

 

【配置思路】

在Linux下配置mysql ODBC 需要有以下步骤:

a) 安装Driver Manager , 本案例使用unixODBC 来作为Driver Manager

b) 安装MySQL驱动程序, 本案例使用Connector/ODBC

c) 配置ODBC.INI

 

【环境说明】

操作系统:CentOS release 6.5 (Final)

目标数据库:ORACLE 11.2.0.3

源数据库:mysql5.23

 

【操作步骤】

一、ODBC的配置

1.1、在目标数据库上面安装unixODBC,脚本:yum install unixODBC

1.2、安装mysql-connector-odbc,下载链接:http://pan.baidu.com/s/1bnuiWCR 密码:rf98

进行解压后修改文件名放在/usr/local/

 

[root@test local]# pwd

/usr/local

[root@OTO-DBR-T02 local]# ll

total 56

drwxr-xr-x. 5 root root 4096 Oct 22 11:15 mysql-connector-odbc

 

1.3、配置odbc.ini文件

 

[myodbc] #需要记住该名称

Driver = /usr/local/mysql-connector-odbc/lib/libmyodbc5.so

Description = Connector/ODBC 5.1 Driver DSN

SERVER = 192.168.199.244

PORT = 3306

USER = root

PASSWORD = root

DATABASE = test

OPTION = 0

TRACE = OFF

 

1.4、测试连接

 

[root@test local]# isql myodbc -v

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

| Connected! |

| |

| sql-statement |

| help [tablename] |

| quit |

| |

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

SQL>

祝贺,弹出该窗口说明可以连接到mysql了。

 

二、监听的配置

2.1 进入ORACLE_HOME/hs/admin

 

[oracle@test admin]$ vi initmyodbc.ora


# This is a sample agent init file that contains the HS parameters that are

# needed for the Database Gateway for ODBC

 

#

# HS init parameters

#

HS_FDS_CONNECT_INFO = myodbc

HS_FDS_TRACE_LEVEL = ON

HS_FDS_SHAREABLE_NAME = /usr/lib64/libodbc.so

 

#

# ODBC specific environment variables

#

set ODBCINI= /etc/odbc.ini

 

#

# Environment variables required for the non-Oracle system

 

#set <envvar>=<value>

 

2.2 配置listener.ora 文件

进入$ORACLE_HOME/network/admin

 

[oracle@test admin]$ vi listener.ora

 

# listener.ora Network Configuration File: /oracle/oracle11/network/admin/listener.ora

# Generated by Oracle configuration tools.

 

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

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

)

)

 

ADR_BASE_LISTENER = /oracle

 

 

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = CLRExtProc)

(ORACLE_HOME = /oracle/oracle11 ) #ORACLE_HOME

(PRESPAWN_MAX = 20)

)

(SID_DESC =

(SID_NAME = myodbc) #与上面的文件名对应

(ORACLE_HOME = /oracle/oracle11 ) #ORACLE_HOME

(PROGRAM = dg4odbc) #11g为dg4odbc,10g不一样

)

)

~

重启监听后看下myodbc的服务是否已经启动

 

[oracle@test oracle11]$ lsnrctl status

 

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 22-OCT-2015 15:22:12

 

Copyright (c) 1991, 2009, Oracle. All rights reserved.

 

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))

STATUS of the LISTENER

------------------------

Alias LISTENER

Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production

Start Date 22-OCT-2015 15:08:57

Uptime 0 days 0 hr. 13 min. 15 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Listener Parameter File /oracle/oracle11/network/admin/listener.ora

Listener Log File /oracle/diag/tnslsnr/test/listener/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=test)(PORT=1521)))

Services Summary...

Service "CLRExtProc" has 1 instance(s).

Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...

Service "myodbc" has 1 instance(s).

Instance "myodbc", status UNKNOWN, has 1 handler(s) for this service...

The command completed successfully

 

2.3 配置 tnsnames.ora 文件

 

myodbc =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(SERVICE_NAME = myodbc) #与上面的监听相对应

)

(HS = OK)

)

 

2.4 创建dblink

 

create database link myodbc connect to "root" identified by "root" using 'myodbc' ;

 

2.5 检查dblink

 

SQL> select * from dual@myodbc;

 

D

-

X

说明已经完成在linux平台的ORACLE连接MySQL的配置;

另:配置完2.2步骤之后可能数据库本身的监听服务就不见了,这时候可以执行,让系统进行重新注册

alter system set local_listener='(address=(protocol=tcp)(port=1521)(host= hostname))'  scope=both;

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

本文作者:JOHN,某上市公司DBA,业余时间专注于数据库的技术管理,从管理的角度去运用技术。

技术博客:猎人笔记                                                数据库技术群:367875324 (请备注数据库类型)

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

相关实践学习
自建数据库迁移到云数据库
本场景将引导您将网站的自建数据库平滑迁移至云数据库RDS。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
7月前
|
SQL 关系型数据库 MySQL
排除通过IP访问MySQL时出现的连接错误问题
以上步骤涵盖了大多数遇到远程连接 MySQL 数据库时出现故障情形下所需采取措施,在执行每个步骤后都应该重新尝试建立链接以验证是否已经解决问题,在多数情形下按照以上顺序执行将能够有效地排除并修复大多数基本链接相关故障。
484 3
|
7月前
|
SQL Java 关系型数据库
Java连接MySQL数据库环境设置指南
请注意,在实际部署时应该避免将敏感信息(如用户名和密码)硬编码在源码文件里面;应该使用配置文件或者环境变量等更为安全可靠地方式管理这些信息。此外,在处理大量数据时考虑使用PreparedStatement而不是Statement可以提高性能并防止SQL注入攻击;同时也要注意正确处理异常情况,并且确保所有打开过得资源都被正确关闭释放掉以防止内存泄漏等问题发生。
320 13
|
7月前
|
SQL 关系型数据库 MySQL
MySQL数据库连接过多(Too many connections)错误处理策略
综上所述,“Too many connections”错误处理策略涉及从具体参数配置到代码层面再到系统与架构设计全方位考量与改进。每项措施都需根据具体环境进行定制化调整,并且在执行任何变更前建议先行测试评估可能带来影响。
1617 11
|
7月前
|
SQL 监控 关系型数据库
查寻MySQL或SQL Server的连接数,并配置超时时间和最大连接量
以上步骤提供了直观、实用且易于理解且执行的指导方针来监管和优化数据库服务器配置。务必记得,在做任何重要变更前备份相关配置文件,并确保理解每个参数对系统性能可能产生影响后再做出调节。
700 11
|
8月前
|
存储 关系型数据库 MySQL
修复.net Framework4.x连接MYSQL时遇到utf8mb3字符集不支持错误方案。
通过上述步骤大多数情况下能够解决由于UTF-encoding相关错误所带来影响,在实施过程当中要注意备份重要信息以防止意外发生造成无法挽回损失,并且逐一排查确认具体原因以采取针对性措施解除障碍。
523 12
|
11月前
|
Java 关系型数据库 MySQL
在Linux平台上进行JDK、Tomcat、MySQL的安装并部署后端项目
现在,你可以通过访问http://Your_IP:Tomcat_Port/Your_Project访问你的项目了。如果一切顺利,你将看到那绚烂的胜利之光照耀在你的项目之上!
534 41
|
Ubuntu 关系型数据库 MySQL
Linux系统MySQL安装
【10月更文挑战第19天】本文介绍了在 Linux 系统上安装 MySQL 的步骤,包括安装前准备、安装 MySQL、启动 MySQL 服务、配置 MySQL 以及验证安装。适用于 Ubuntu/Debian 和 CentOS/Fedora 系统,提供了详细的命令示例。
2729 1
|
关系型数据库 MySQL Linux
Linux环境安装MySQL8.0.36使用rpm包安装,安装顺序是什么?
【8月更文挑战第23天】Linux环境安装MySQL8.0.36使用rpm包安装,安装顺序是什么?
1194 1
|
关系型数据库 MySQL Linux
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思
|
关系型数据库 MySQL Linux
Linux centos 6.5 - Mysql 安装 、卸载、修改密码、忘记密码 并异常处理
Linux centos 6.5 - Mysql 安装 、卸载、修改密码、忘记密码 并异常处理
578 0

推荐镜像

更多