perl与Mysql连接
日期:2007年6月23日 作者: 查看:[大字体 中字体 小字体]-
Perl对MySQL的支持借助DBI/DBD客户接口而提供。Perl DBD/DBI客户代码要求Perl 5.004或以后版本。如果你有Perl的一个更旧的版本,接口将不能工作。MySQL Perl支持也要求你安装了MySQL客户编程支持。如果你从RPM文件安装MySQL,客户程序在客户RPM中,但是客户编程支持在开发者RPM。确定你安装了后一个RPM 。
对于版本3.22.8,Perl支持是与主要MySQL发行版本单独分发。如果你想要安装Perl支持,你需要的文件能从http://www.mysql.com/Contrib获得。
在UNIX下安装分发包
Perl 分发以压缩的tar档案提供,并且有一个类似“MODULE-VERSION.tar.gz”的名字,这里MODULE是模块名字并且VERSION是版本号。你应该得到Data-Dumper、DBI和Msql-Mysql-modules分发并按此次序安装他们。安装过程显示出在下面,显示的例子针对Data-Dumper模块, 但是所有3个过程是相同的。解包分发到当前目录:
shell> gunzip < Data-Dumper-VERSION.tar.gz tar xvf -
这个命令创建的一个名为“Data-Dumper-VERSION”的目录。进入解包分发的顶级目录:
shell> cd Data-Dumper-VERSION
构造分发并且编译所有东西:
shell> perl Makefile.PL
shell> make
shell> make test
shell> make install
make test命令很重要,因为它验证模块正在工作。注意:在你Msql-Mysql-modules安装期间运行该命令试验接口代码时,MySQL服务器必须正在运行,否则测试将失败。无论何时你安装一个新版本的MySQL,重建并且重新安装Msql-Mysql-modules分发是一个弥饕? 特别是如果你在升级MySQL后,观察所有异常,如你的DBI脚本核心倾倒(core dump)。
如果你没有权限在系统目录下安装Perl模块,或如果你安装本地Perl模块,下列参考书可以帮助你:
http://www.iserver.com/support/contrib/perl5/modules.html
在标题Installing New Modules that Require Locally Installed Modules下面查找。在Win32上安装ActiveState Perl
在 Win32 上安装 ActiveState Perl的MySQL DBD的模块, 你应该做下列步骤:打开一个DOS shell。
如果需要,设置HTTP_proxy变量。例如, 你可以试一试:set HTTP_proxy=my.proxy.com:3128
启动PPM程序:C:perlinppm.pl
如果你还没有这样做,安装DBI: install DBI
如果成功,安装DBD::mysql:http://www.mysql.com/Contrib/ppd/DBD-mysql.ppd
如果你不能使上述步骤工作,你应该安装MyODBC驱动程序并且通过ODBC连接MySQL服务器。use DBI;
$dbh= DBI->connect("DBI:ODBC:$dsn","$user","$passWord")
die "Got error $DBI::errstr when connecting to $dsn";
在Win32上安装MySQL Perl分发
MySQL Perl分发包含DBI、DBD:MySQL和DBD:ODBC。
从http://www.mysql.com/download.html得到Win32的Perl分发。
在C:解压缩分发,这样你得到一个“C:PERL”目录。
增加目录“C:PERLBIN”到你的路径。
增加目录“C:PERLBINMSWin32-x86-thread”或“C:PERLBINMSWin32-x86”到你的路径。
在 DOS shell执行perl -v测试perl的运行。使用PerlDBI/DBD接口的问题
如果 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环境变量中。如果你从DBD-mysql得到下列错误,你可能正在使用gcc(或使用一个旧的用gcc编译的二进制代码):
/usr/bin/perl: can't resolve symbol '__moddi3'
/usr/bin/perl: can't resolve symbol '__divdi3'
当“mysql.so”库文件被构造时候,为链接命令加上-L/usr/lib/gcc-lib/… -lgcc(当你编译Perl客户时检查针对“mysql.so”的make输出)。-L选项应该指定“libgcc.a”在你系统上所在目录的路径名。这个问题的另一个原因可能是Perl和MySQL都不是用gcc编译的。在这种情况下,你可以都用gcc编译以解决不匹配。
如果你想要在一个不支持动态链接(象SCO那样)的系统上使用Perl模块,你可以产生包括DBI和DBD-mysql的Perl的一个静态版本。这种运行方法是你生成一个链接了DBI代码的Perl版本并在最新的Perl上安装它,然后你使用它来构造附加链接了DBD代码的Perl版本,并且安装它。
在 SCO 上,你必须有下列环境变量设置:
shell> LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:/usr/progressive/lib
或
shell> LD_LIBRARY_PATH=/usr/lib:/lib:/usr/local/lib:/usr/ccs/lib:/usr/progressive/lib:/usr/skunk/lib
shell> LIBPATH=/usr/lib:/lib:/usr/local/lib:/usr/ccs/lib:/usr/progressive/lib:/usr/skunk/lib
shell> MANPATH=scohelp:/usr/man:/usr/local1/man:/usr/local/man:/usr/skunk/man:
首先, 在DBI分发所在目录下运行下列命令,创造包括一个静态链接的Perl DBI:shell> perl Makefile.PL LINKTYPE=static
shell> make
shell> make install
shell> make perl
然后你必须安装新的Perl。Make perl的输出将显示正确的你需要执行施行安装的make的命令。在SCO上,是make -f Makefile.aperl inst_perl MAP_TARGET=perl. - [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] 下一页
-
- perl与Mysql连接 相关文章:
- ·perl与Mysql连接
- perl与Mysql连接 相关软件
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
下一篇:perl模块和包的使用
精品推荐
热点TOP10
- ·Perl实例:
- ·Linux系统环境下的Socket编程详细解析
- ·Perl的简单语法(与C语言语法的异同)
- ·Perl 语言全面编译
- ·perl与Mysql连接
- ·快速开始Perl XML:接口篇
- ·如何用PERL编写聊天室服务器程序
- ·Perl教学 第十三篇 Perl的面向对象编程
- ·系统比对[oscmp.pl]
- ·用 Perl 进行 GNOME 编程
- ·Perl命令行应用介绍
- ·PERL里正则表达式的简介
- ·Perl教学 第五篇 文件读写
- ·Perl教学 关联数组(哈希表)
- ·CGI 安全问题详解与说明(二)
- ·CGI简明教程第六章
- ·perl模块安装方法
- ·windows下Perl开发环境的安装和配置
- ·什么是CGI
- ·CGI的安全(一)
