依旧是我的RedHat9,在更新了Perl之后,我想使用mysqlhotcopy命令,但是
执行mysqlhotcopy命令时:
# /usr/local/mysql/bin/mysqlhotcopy -u root -p 密码 数据库名
备份目录
出现错误:
Can't locate DBI.pm in @INC (@INC contains:
/usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0
/usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl
/usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0
.) at /usr/local/mysql/bin/mysqlhotcopy line 8.
BEGIN failed--compilation aborted at
/usr/local/mysql/bin/mysqlhotcopy line 8.
按照出错信息查看/usr/local/mysql/bin/mysqlhotcopy的第8行,内容如下:
use DBI;
解压,进入目录,生成makefile文件
# export LANG=C ( 注:export LANG=C 这个C是C
language)
# perl Makefile.PL又出现错误:
Can't locate DBI/DBD.pm in @INC (@INC contains:
/usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0
/usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl
/usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0
.) at Makefile.PL line 24.
查看Makefile.PL 第24行,内容如下
require DBI::DBD;
经过搜索和实践,明确还需要安装DBI:
下载DBI-1.608.tar.gz
解压之后进入该文件目录
然后生成make文件
# perl Makefile.PL
# make
# make install
然后到 DBD-mysql-2.9007文件夹
再用下面的命令生成makefile文件
# perl Makefile.PL但是这里又出现了一个错误:
这里的意思是说,找不到MySQL的路径,在环境变量里面添加进你自己的MySQL安装目录里的bin文件夹的目录就可以了。
产生的正确的信息如下:
I will use the following settings for compiling and testing:
cflags (mysql_config) = -I/usr/local/mysql/include
libs (mysql_config) = -L/usr/local/mysql/lib -lmysqlclient -lz -lcrypt
-lnsl -lm
mysql_config (guessed ) = mysql_config
nocatchstderr
(default ) = 0
nofoundrows (default ) = 0
ssl (guessed ) = 0
testdb (default ) = test
testhost (default ) =
testpassword (default ) =
testsocket (default ) =
testuser (default ) =
To change these settings, see 'perl Makefile.PL --help' and
'perldoc INSTALL'.
Checking if your kit is complete...
Looks good
Using DBI 1.32 installed in
/usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi/auto/DBI
Writing Makefile for DBD::mysql
之后就可以编译安装了:
# make
# make test //这一步只是测试,有小错误也没关系
# make install 执行mysqlhotcopy热备份数据
# /usr/local/mysql/bin/mysqlhotcopy -u root -p 密码 数据库名
备份目录
至此。MySQL热备份命令使用成功。