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";

合智互联客户成功服务热线:400-1565-661

admin
admin管理员

上一篇:手把手带你搭一个简单的微信小程序(包括前后端)
下一篇:解决 STS 或者 Eclipse 从 Git 平台 Pull 代码到本地后文件乱码的问题

留言评论

暂无留言
取消
扫码支持