oracle on suse 连接 mysql

参考文档

https://www.sohu.com/a/339295793_784849

https://www.cnblogs.com/rangle/p/8967643.html

oracle on suse 连接 mysql by 黄良谋 实测成功

一,安装unixODBC

下面两个文件传到 /usr/local/下

 

ssh root登陆

cd /usr/local/

1,下载unixODBC最新版本:http://www.unixodbc.org/

ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-2.3.9.tar.gz

 

2, tar zxvf unixODBC-2.3.9.tar.gz

3, cd unixODBC-2.3.9

4,#./configure --prefix=/usr/local/unixODBC-2.3.9 --includedir=/usr/include --libdir=/usr/lib -bindir=/usr/bin --sysconfdir=/etc

安装成功后,unixODBC所需的头文件都被安装到了/usr/inlucde下,编译好的库文件安装到了/usr/lib下,与unixODBC相关的可执行文件安装到了/usr/bin下,配置文件放到了/etc下。

5,#make

6,#make install 

安装完成.! 使用 isql  -version 测试

报错如下.

isql: error while loading shared libraries: libodbc.so.2: cannot open shared object file: No such file or directory

解决方案:

在/etc/ld.so.conf文件中加入libodbc.so.1文件所在的路径/usr/lib/

执行 ldconfig命令使修改生效.

使用 isql  测试

 

二: 下载安装mysql驱动:

https://dev.mysql.com/downloads/connector/odbc/

 

从上面网址下载mysql驱动 mysql-connector-odbc-5.3.14-linux-sles12-x86-64bit.tar.gz

cd /usr/local/

tar -zvxf mysql-connector-odbc-5.3.14-linux-sles12-x86-64bit.tar.gz

cd mysql-connector-odbc-5.3.14-linux-sles12-x86-64bit

cd lib

cp * /usr/local/lib/

cd ../bin

./myodbc-installer  -d -a -n "wms"  -t "DRIVER=/usr/local/lib/libmyodbc5w.so;SETUP=/usr/local/lib/libmyodbc5S.so"

libmyodbc5a.so 是ASCII编码格式  

libmyodbc5w.so 是UNICODE编码格式  

libmyodbc5S.so 是程序开发中配置数据源提供界面的动态链接库

查看mysql字符集

show variables like '%char%';

 

odbc_config

vi /etc/odbcinst.ini

[wms]

Driver=/usr/lib/libmyodbc5w.so

SETUP=/usr/lib/libmyodbc5S.so

UsageCount=1

 

odbcinst -j

vi /etc/odbc.ini

[wms]

Driver=wms

SERVER=10.8.1.140

CHARSET=utf8mb4

PORT=3306

Database=tarzan_mes

USER = hwms

Password = 密码

 

isql -v wms

 

SELECT CUSTOMER_CODE,CUSTOMER_NAME FROM mt_customer  LIMIT 5,10;

查看odbc 文件路径

odbcinst -j

 

 

切换到root

cd /

find / -name libodbc.so

/usr/local/unixODBC-2.3.9/DriverManager/.libs/libodbc.so

切换到oralce用户环境

su - oramq1 su - oramd1 su - oramp1

cd $ORACLE_HOME

pwd

ls

检查 dg4odbc 是否安装

 

配置dg4odbc(hsodbc)

cd $ORACLE_HOME/hs/admin

cp initdg4odbc.ora initodbc_wms.ora

vi initodbc_wms.ora

HS_FDS_CONNECT_INFO = wms

HS_FDS_TRACE_LEVEL = OFF

HS_LANGUAGE=AMERICAN_AMERICA.UTF8

#HS_LANGUAGE="simplified chinese_china.al32utf8"

HS_NLS_NCHAR=UCS2

HS_FDS_SHAREABLE_NAME = /usr/local/unixODBC-2.3.9/DriverManager/.libs/libodbc.so

 

配置网关监听

cd $ORACLE_HOME/network/admin

备份监控文件

cp listener.ora listener.ora.bak

cp tnsnames.ora tnsnames.ora.bak

 

cat listener.ora

vi

添加如下内容

 

 

(ADDRESS =

(PROTOCOL = IPC)

(KEY = odbc_wms.WORLD)

)

(ADDRESS=

(PROTOCOL = IPC)

(KEY = odbc_wms)

)

 

(SID_DESC =

(SID_NAME = odbc_wms)

(ORACLE_HOME = /oracle/MQ1/122)

(ENVS=LD_LIBRARY_PATH=/usr/local/unixODBC-2.3.9/lib)

(PROGRAM = dg4odbc)

)

 

重启监听服务

lsnrctl stop

lsnrctl start

 

配置TNS

cd $ORACLE_HOME/network/admin

vi tnsnames.ora

最后加入

 

odbc_wms.WORLD=

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS =

(PROTOCOL = TCP)

(HOST = MEQASDB01)

(PORT = 1521)

)

)

(CONNECT_DATA =

(SID = odbc_wms)

(GLOBAL_NAME = odbc_wms.WORLD)

)

(HS=OK)

)

 

 

配置DBLINK

su - oramq1

lsnrctl start

sqlplus / as sysdba

create public database link aps connect to plsql identified by plsql using '10.30.35.232:1521/PROD';

 

create public database link odbc_sjcj6 connect to "readonly" identified by "readonly" using 'odbc_sjcj6';

create public database link odbc_sjcj7 connect to "readonly" identified by "readonly" using 'odbc_sjcj7';

create public database link odbc_sjcj8 connect to "readonly" identified by "readonly" using 'odbc_sjcj8';

create public database link odbc_sjcj9 connect to "readonly" identified by "readonly" using 'odbc_sjcj9';

 

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

 

drop public database link odbc_wms;

create public database link odbc_wms connect to "hwms" identified by "密码" using 'odbc_wms';

create public database link odbc_wmsjx connect to "hwms" identified by "密码" using 'odbc_wmsjx';

SELECT CUSTOMER_CODE,CUSTOMER_NAME FROM mt_customer@odbc_wms where rownum <10 ;

 

SELECT CUSTOMER_CODE, CUSTOMER_NAME FROM mt_customer@odbc_wms where rownum < 10;

SELECT "userid" userid, "badgenumber" badgenumber, "name" name FROM userinfo@odbc_ykt where rownum < 11;

select * from SAPHANADB.MARC@odbc_erp800;

select hv.make_order_num,hv.mo_status_desc,hv.me_status from hcms.hps_mo_details_v@aps hv;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章