本文讲述两个内容:

一:环境包安装

二:操作脚本


一:环境包安装

假定 以安装好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.



在进行第三步是可能会出现mysql_config找不到的情况,应该是没有安装开发工具包


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”;
 }