perl通过ODBC连接GaussDB(DWS)

举报
取个啥名 发表于 2021/02/22 09:42:24 2021/02/22
【摘要】 本文介绍使用perl通过ODBC连接GaussDB(DWS)的安装和配置方法

使用perl语言连接Gaussdb

1 准备

本例使用软件如下

unixODBC-2.3.0

DBI-1.642

DBD-ODBC-1.56


2   安装unixODBC

2.1 上传安装包

使用root用户上传安装包unixODBC-2.3.0.tar.gz/tmp

2.2 安装

使用root用户安装,执行如下命令

cd /tmp

tar zxvf unixODBC-2.3.0.tar.gz

cd unixODBC-2.3.0

./configure --enable-gui=nox86编译命令)

./configure --enable-gui=no --build=arm-linuxarm编译命令)

make

make install

2.3 测试安装结果

命令行敲击isql,出现如下结果,表示安装成功


2.4  替换驱动程序包

解压GaussDB-Kernel-V300R002C00-SUSE11-64bit-Odbc.tar.gz

odbc/lib下的psqlodbcw.lapsqlodbcw.so 2个文件拷贝到/usr/local/lib路径下。

2.5 添加环境变量

使用omm用户,编辑~/.bashrc文件,追加红色内容

vi ~/.bashrc

export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH

export ODBCSYSINI=/usr/local/etc

export ODBCINI=/usr/local/etc/odbc.ini

 

生效环境变量

source ~/.bashrc

2.6   配置数据源

使用root用户,做如下操作。

在“/usr/local/etc/odbcinst.ini”文件中追加以下内容。

vi /usr/local/etc/odbcinst.ini

[GaussMPP]

Driver64=/usr/local/lib/psqlodbcw.so

setup=/usr/local/lib/psqlodbcw.so

 

在“/usr/local/etc/odbc.ini ”文件中追加以下内容。

vi /usr/local/etc/odbc.ini

[GaussODBC]

Driver=GaussMPP

Servername=10.185.180.123(数据库Server IP

Database=postgres (数据库名)

Username=odbc (数据库用户名)

Password=Bigdata123@ (数据库用户密码)

Port=25308 (数据库监听端口)

Sslmode=allow

2.7  配置pg_hba.conf文件

gs_guc set -Z coordinator -N all -I all -h "host all all 10.185.180.123/32 sha256"

2.8  重启集群

source /opt/huawei/Bigdata/mppdb/.mppdbgs_profile

cm_ctl stop

cm_ctl start

2.9  创建odbc配置的用户

如果用户已经存在,可以忽略此步。

登录CN

source /opt/huawei/Bigdata/mppdb/.mppdbgs_profile

gsql -d postgres -p 25308 -ar

create user odbc password 'Bigdata123@';

2.10 测试

isql -v GaussODBC

出现如下结果表示配置成功


安装DBI

3.1  上传安装包

使用root用户上传安装包DBI-1.642.tar/tmp

3.2 安装

使用root用户安装,执行如下命令

cd /tmp

tar xvf DBI-1.642.tar

cd DBI-1.642

perl Makefile.PL

make

make install

4 安装DBD-ODBC

4.1 上传安装包

使用root用户上传安装包DBD-ODBC-1.56.tar.gz/tmp

4.2  安装

使用root用户安装,执行如下命令

cd /tmp

tar zxvf DBD-ODBC-1.56.tar.gz

cd DBD-ODBC-1.56

perl Makefile.PL

make

make install

Perl脚本连接数据库

脚本:

use DBI;

my $dbh;

$dbh = DBI->connect("dbi:ODBC:GaussODBC","odbc","Bigdata123@",{AutoCommit => 1, PrintError => 1, RaiseError => 0, LongReadLen => 1048576});

my $sth = $dbh->prepare("select current_time");

$sth ->execute();

@tabrow=$sth->fetchrow();

$result=@tabrow[0];

$sth->finish();

$dbh->disconnect();

print $result."\n";

GaussDB(DWS)博文后缀.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。