本文讲述两个内容:
一:环境包安装
二:操作脚本
一:环境包安装
假定 以安装好perl语言和mysql数据库
DBI安装:DBI详细信息参考:http://dbi.perl.org/
1.下载DBI包:
下载地址:http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-1.620.tar.gz
tar xzf DBI-1.620.tar.gz
进入解压包内 perl Makefile.PL
make test
make
make install (如果不是root用户,要sudo一下)
DBD安装:
1.下载DBD
下载地址:http://search.cpan.org/CPAN/authors/id/C/CA/CAPTTOFU/DBD-mysql-4.021.tar.gz
2. 3. 同上
Can't exec "mysql_config": 没有那个文件或目录 at Makefile.PL line 479.
解决方法:
进入DBD::mysql的代码安装目录
$find / -name "mysql_config"
/usr/local/mysql/bin/mysql_config
$ cd ~/.cpan/build/DBD-mysql-3.0008
$ perl Makefile.PL --mysql_config=/usr/local/mysql/bin/mysql_config
$ make
$ make test
$ make install
问题2
如果 Perl 报告它不能找到../mysql/mysql.so模块,那么问题可能是该Perl不能找到共享库文件“libmysqlclient.so”。
你可用下列任何一个方法修正它这:
- 用perl Makefile.PL -static而非perl Makefile.PL编译Msql-Mysql-modules分发。
- 拷贝libmysqlclient.so到其他共享库文件所在的目录(可能是“/usr/lib”或“/lib”)。
- 在Linux上,你可以把libmysqlclient.so所在目录的路径名加到“/etc/ld.so.conf”文件中。
- 把libmysqlclient.so所在目录的路径名加到LD_RUN_PATH环境变量中。
详见 报错:install_driver(mysql) failed: Can't load '/usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi/auto/DBD/mysql/mysql.so' for module DBD::mysql: libmysqlclient.so.15 无法打开共享对象文件: 没有那个文件或目录 at /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/DynaLoader.pm line 230.
sudo apt-get install libmysqld-dev
sudo apt-get install libmysqlclient-dev
CentOS 用
yum install libmysqld-dev
yum install libmysqlclient-dev
来安装这两个包。
其余同上。完成安装后就可以利用perl脚本进行mysql数据的操作了。
二:操作脚本
1、连接、关闭
my $dbh = DBI->connect(”DBI:mysql:database=DBname;host=localhost”,”user”,”pwd”, {’RaiseError’ => 1});
… …
$dbh->disconnect();
2、类似插入等无返回操作
my $sqr = $dbh->PRepare(”insert into table_name(Name,region_id,inuse,url) values (’”.$r_name.”‘,’”.($t+1).”‘,’1′,’”.$r_url.”‘) “);
$sqr->execute();
3、取得自增长的ID
执行插入操作后
my $table_key = $dbh->{’mysql_insertid’};
4、Select操作
my $row;
while ($row = $sqr->fetchrow_arrayref) {
printf $row->[0].”++”.$row->[1].”\n”;
}
详细操作可以查看 perl dbi详解