mysql数据库tns配置_ORACLE 访问MYSQL 配置笔记

ORACLE本身并没有针对MYSQL的透明网关,因此ORACLE访问MYSQL需通过ODBC的透明网关完成。出于简单说明,ORACLE安装在Windows系统下。

第一步: 安装MYSQL ODBC驱动

由于是ORACLE访问MYSQL, 因此MYSQL ODBC驱动 必须安装在ORACLE所在的服务器上。可下载安装mysql-connector-odbc-*.msi安装,或者在安装mysql社区版时选择安装connector-odbc。 需要说明的是,并不是每次都能安装成功connector-odbc。

第二步:创建MYSQL ODBC数据源

在管理工具->数据源(ODBC)->系统DSN中添加MYSQL的ODBC数据源。假设取名“KEYMYSQL”A。可以在配置过程中测试连接,确保能够连通。

第三步: 创建init.ora

在$ORACLE_HOME\HS\ADMIN\目录下有一个initdg4odbc.ini文件。 在当前目录下,复制一命名规则为init.ora的文件,例如initmysql.ora ,这里“mysql”B就是网关的sid.。 该文件中两行可以如下配置:

HS_FDS_CONNECT_INFO

= keymysql

HS_FDS_TRACE_LEVEL

= NO

其中HS_FDS_CONNECT_INFO的值就是第二步配置的ODBC数据源 “KEYMYSQL”A中的值。

第四步: 将网关添加监听中

在数据库服务器上修改$ORACLE_HOME\network|admin\下的listener.ora文件,在SID_LIST_LISTENER添加标红这段:

SID_LIST_LISTENER

=

(SID_LIST =

(SID_DESC =

(SID_NAME = CLRExtProc)

(ORACLE_HOME =

E:\app\Administrator\product\11.2.0\dbhome_1)

(PROGRAM = extproc)

(ENVS =

"EXTPROC_DLLS=ONLY:E:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")

)

(SID_DESC =

(SID_NAME = mysql)

(ORACLE_HOME =

e:\app\Administrator\product\11.2.0\dbhome_1)

(PROGRAM = dg4odbc)

)

)

这里 需要说明的是,一是,SID_NAME的值就是第三步网关“mysql”B的值,和第二步ODBC数据源的值无关, 二是ORACLE_HOME是你数据库中实际的$ORACLE_HOME值不要直接拷贝忘了改。

第五步:配置别名

在数据库服务器上修改$ORACLE_HOME\network|admin\下的tnsname.ora文件,添加数据库别名:

MYSQLSERVER

=

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST =

localhost)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = mysql)

)

(HS = OK)

)

其中“MYSQLSERVER”C是别名, SERVICE_NAME的“mysql”对应的是第三和第四步中的SID

第六步: 创建数据库连接

执行以下SQL:

create

database link mysqllk

connect to "root"

identified by "root" using ‘MYSQLSERVER’;

其中“mysqllk”是database link

,

第七步: 测试

假设MYSQL中有个表t,在ORACLE中执行:

Select  * from t@ mysqllk;

如果返回值正确,则表示配置过程。

PS:由于MYSQL是UTF8字符集,ORACLE数据库是US7ASCII字符集,读取MYSQL中的中文会返回乱码,网上一些,例如在init.ora中配置HS_LANGUAGE和HS_NLS_NCHAR的方法还不奏效,还需下一步排除。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值