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