mysql客户端备份数据库失败,mysqlhotcopy的使用和安装方法【快速备份mysql数据库】及错误解...

mysqlhotcopy是使用LOCK TABLES、FLUSH TABLES和cp或scp来快速备份数据库,mysqlhotcopy是由Tim Bunce用Perl脚本编写的。它是备份数据库或单个表的最快的途径,但它不能远程运行只能运行在数据库目录所在的机器上。注意:mysqlhotcopy只用于备份MyISAM。

mysqlhotcopy与mysql自带的mysqldump异同比较:

mysqlhotcopy只适用于 MyISAM 引擎,而后则则可同时使用于MyISAM引擎和InodDB引擎.

mysqlhotcopy和mysqldump相同的地方都是在线执行 LOCK TABLES 以及 UNLOCK TABLES

mysqlhotcopy是一个快速文件意义上的COPY,mysqldump是一个mysql数据库端的SQL语句集合。

mysqlhotcopy恢复只需要COPY备份文件到源目录覆盖即可,mysqldump需要导入SQL文件到原库中,并且可能产生很多导入出错的情况。

mysqlhotcopy只能运行在数据库目录所在的机器上,mysqldump可以用在远程客户端,不过备份的文件还是保存在数据库服务器上。

mysqlhotcopy在使用前必须安装perl-DBD-mysql包,而mysqldump则不需要。

使用mysqlhotcopy之前需要安装perl-DBI和DBD-mysql:

1:安装perl-DBI

yum -y install perl-DBI

#(如果不行则执行yum -y install perl perl-DBI)

2:安装DBD-mysql (如果编译出错请看最后面)

wget http://www.fcbu.com/upimages/soft/DBD-mysql-4.020.tar.gz

tar xzvf DBD-mysql-4.020.tar.gz

cd DBD-mysql-4.020

perl Makefile.PL --mysql_config=/usr/local/mysql/bin/mysql_config

make

make install

如果你的mysql不是安装在/usr/local/mysql/目录,mysql_config的路径请按照你自己的填写。

DBD-mysql的官网可以找到最新的版 http://www.cpan.org/modules/by-module/DBD/(目前最新的为DBD-mysql-4.020)

转载请注明来源:http://linux.fcbu.com/mysqlhotcopy.htm

一个常用的备份例子:

/usr/local/mysql/bin/mysqlhotcopy -u root -p 密码 --addtodest 数据库名1 数据库名2  备份目录

–addtodest的意思是当备份存在时,不中断备份,只添加新的文件进去。

更多的选项可以执行/usr/local/mysql/bin/mysqlhotcopy –help查看。

恢复用mysqlhotcopy备份的mysql数据库方法:

停止mysql服务。

复制备份的数据库目录到相应的mysql数据目录下。

用chown更改目录所有者为mysql服务器运行的用户。

启动mysql服务就顺利完成了,速度非常快。

执行perl Makefile.PL --mysql_config=/usr/local/mysql/bin/mysql_config编译的时候如果出现如下错误:

Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 20.

BEGIN failed--compilation aborted at Makefile.PL line 20.

解决方法:

yum -y install perl-ExtUtils-MakeMaker

如果还是不行就用下面两条:

yum -y install perl-ExtUtils-MakeMaker*

yum -y install perl-Time-HiRes*

转载请注明来源:http://linux.fcbu.com/mysqlhotcopy.htm

----------- 2012/6/1 更新 -----------------

错误1:运行mysqlhotcopy进行数据库备份的时候遇到如下错误:

Invalid db.table name 'fcbudatabase.fcbudatabase`.`wp_commentmeta' at /usr/local/mysql/bin/mysqlhotcopy line 855.

解决方法:

vi /usr/bin/mysqlhotcopy

#在第 835 下新增一行,即在my @dbh_tables = eval { $dbh->tables() };下面新增如下一行:

map { s/^.*?\.//o } @dbh_tables;

保存即可解决

错误2:install_driver(mysql) failed: Can't load '/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/DBD/mysql/mysql.so' for module DBD::mysql: libmysqlclient.so.15: 无法打开共享对象文件: 没有那个文件或目录 at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/DynaLoader.pm line 230.

at (eval 7) line 3

Compilation failed in require at (eval 7) line 3.

Perhaps a required shared library or dll isn't installed where expected

at /usr/local/mysql/bin/mysqlhotcopy line 178

解决方法:

这个错误出现的原因是因为安装mysql后的路径配置的问题,需要把库文件路径信息加入到/etc/ld.so.conf

echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf

再重新载入:

ldconfig

就一切正常了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值