当前位置: 首页 > 工具软件 > Perl DBI > 使用案例 >

perl DBI/DBD 安装

西门庆
2023-12-01

Oracle:

[root@test-mesdb-193-45 tmp]# perl check.pl

DBD::Oracle -- 1.74

DBI -- 1.642

Ora2Pg -- 18.2

Perl -- 5.16.3

[root@test-mesdb-193-45 tmp]# cat check.pl

#!/usr/bin/perl

use strict;

use ExtUtils::Installed;

my $inst=ExtUtils::Installed->new();

my @modules = $inst->modules();

foreach(@modules){

my $ver = $inst->version($_) || "???";

printf("%-12s -- %s\n",$_,$ver);

}

PERL对数据库的支持广而且全,几乎所有的主流数据库都有与之相应的PERL模块支持。为了开发可在不同数据库上移植的PERL应用,DBI(DataBase Interface)模块应运而生,使用这个模块,应用只需使用统一的接口便能操作不同的数据库,真正实现了可移植;当然,这个DBI也配备有相应的开关来支持不同数据库的各种特性。

DBI只是个抽象层,要实现支持不同的数据库,则需要在DBI之下,编写针对不同数据库的驱动。对MySql来说,有DBD::Mysql, 而对ORACLE来说,则是DBD::Oracle。其中的DBD这是DataBase Driver的简写。

安装顺序是先装DBI,再装DBD::Oracle,DBD::Oracle模块不是Oracle官方开发的,而是由Pythian Group这个很有名的DBA咨询公司组织专人开发,目前的最新版本是1.74,主页在http://www.pythian.com/resources/dba-resources/dbdoracle-project/,读者可以到那里找到关于此模块的最新动态。

1:检查当前系统的Perl版本

[root@getlnx01 ~]# perl -v

This is perl, v5.8.8 built for x86_64-linux-thread-multi

Copyright 1987-2006, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the

3:具体安装步骤

[root@getlnx01 tmp]# tar xvf DBI-1.627.tar 1.

[root@getlnx01 tmp]# cd DBI-1.627

[root@getlnx01 DBI-1.627]# perl Makefile.PL

[root@getlnx01 DBI-1.627]# make

[root@getlnx01 DBI-1.627]# make test

[root@getlnx01 DBI-1.627]# make install

二: 安装DBD-ORACLE组件,安装步骤简单如下所示:

[root@getlnx01 DBI-1.627]# cd /tmp

[root@getlnx01 tmp]# tar zxf DBD-Oracle-1.64.tar

[root@getlnx01 tmp]# cd DBD-Oracle-1.64

[root@getlnx01 DBD-Oracle-1.64]# export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1;

[root@getlnx01 DBD-Oracle-1.64]# export PATH=$ORACLE_HOME/bin:$PATH;

[root@DB-Server DBD-Oracle-1.64]# export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;

[root@getlnx01 DBD-Oracle-1.64]# perl Makefile.PL

Mysql:

使用的软件版本

DBI-1.604.tar.gz

DBD-mysql-4.006.tar.gz

建议使用以上

版本搭配,否则可能连接mysql错误

一、DBI的安装

wget http://www.cpan.org/modules/by-module/DBD/DBI-1.604.tar.gz

tar -zxvf DBI-1.604.tar.gz

cd DBI-1.604

perl Makefile.PL

make

make test

make install

二、DBD的安装

注意mysql的环境变量,若没有则用 添加/usr/local/mysql/bin到环境变量PATH中

PATH=/usr/local/mysql/bin:$PATH;

export PATH (mysql的安装路径根据实际情况填写)

wget http://cpan.perl.org/modules/by-module/DBI/DBI-1.601.tar.gz

tar -zxvf DBD-mysql-4.006.tar.gz

cd DBD-mysql-4.006

perl Makefile.PL –mysql_config=/usr/local/mysql/bin/mysql_config

make

make test

make install

三、其它可能发生的状况

如果运行某个调用MYSQL数据库的程序时出现如下系统提示:

install_driver(mysql) failed: Can't load '/usr/lib/perl5/site_perl/5.6.1/i386-linux/auto/DBD/mysql/mysql.so' for module DBD::mysql: /usr/lib/perl5/site_perl/5.6.1/i386-linux/auto/DBD/mysql/mysql.so: undefined symbol: uncompress at /usr/lib/perl5/5.6.1/i386-linux/DynaLoader.pm line 206. at (eval 2) line 3

那么说明DBD::MYSQL未安装成功。

此时将/usr/local/mysql/include/mysql/*

复制到/usr/include/

同时将/usr/local/mysql/lib/mysql/*

复制到/usr/lib/(64位系统 /usr/lib64/)

然后使用perl Makefile.PL设置环境,再进行后续的正常安装,就能正确连接到MYSQL数据库。

四、连接代码示例,下面是perl通过DBI连接到mysql数据库的示例代码:

#!/bin/perl

use DBI;

# Connect to target DB

my $dbh = DBI->connect("DBI:mysql:database=linuxpig;host=localhost","your_username","your_password", {'RaiseError' => 1});

# Insert one row

my $rows = $dbh->do("INSERT INTO test (id, name) VALUES (1, 'welcome to XX')");

# query

my $sqr = $dbh->prepare("SELECT name FROM test");

$sqr->execute();

while(my $ref = $sqr->fetchrow_hashref()) {

print "$ref->{'name'}\n";

}

$dbh->disconnect();

执行结果:

[root@linuxpig ~]# perl test.pl

五、其他安装方法:

使用CPAN shell,以root身份登陆,然后发出如下命令:

#perl -MCPAN -e shell

cpan>install DBI

cpan>install DBD::mysql

cpan>install CGI

 类似资料: