Mysqlhotcopy 是 Mysql 提供的一个使用 perl 编写的,专门用来备份 MyISAM 存储引擎的工具 报错处理

作者:csuper 发表于:2017-01-16

  Mysqlhotcopy 是 Mysql 提供的一个使用 perl 编写的,专门用来备份 MyISAM 存储引擎的工具

 Mysqlhotcopy 是 Mysql 提供的一个使用 perl 编写的,专门用来备份 MyISAM 存储引擎的工具 报错处理

Can't locate DBI.pm in @INC (@INC contains: 

错误原因:系统没有按安装DBI组件

mysqlhotcopy是由perl写的脚本,我们如果想用mysqlhotcopy来备份数据库的话,还需要安装两样东西


  1. yum install perl-DBI perl-DBD-MySQL

或者http://www.csuper.cn/?id=732

安装完毕之后,如果我们遇到下面的问题

install_driver(mysql) failed: Can't load '/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/mysql/mysql.so' for module DBD::mysql: libmysqlclient.so.15 无法打开共享对象文件: 没有那个文件或目录 at /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/DynaLoader.pm line 230.
at (eval 3) line 3
Compilation failed in require at (eval 3) line 3.
Perhaps a required shared library or dll isn't installed where expected
at /home/admin/local/BackupMasterDB.pl line 51

上面错误一看是找不到libmysqlclient.so.15 ,先find吧

  1. #find /usr/ -name "libmysqlclient.so*" 

  2. /home/mysql/lib/mysql/libmysqlclient.so.15.0.0

  3. /home/mysql/lib/mysql/libmysqlclient.so.15

  4. /home/mysql/lib/mysql/libmysqlclient.so

  5. 解决方法:

  6. # echo "/home/mysql/lib/mysql/" >> /etc/ld.so.conf

  7. # ldconfig

  8. 如果还继续提示上面的错误,那安装:

  9. yum install mysql-devel吧

  10. 如果遇到下面的问题

  11. DBI connect(';host=localhost;mysql_read_default_group=mysqlhotcopy','root',...) failed: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) at ./mysqlhotcopy line 180

  12. 在mysqlhotcopy内也找不到重新指定mysql.sock位置内容,一般地mysql.sock随mysql启动后都会在/tmp下,看来只能创建个链接过去了:

  13. ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock


版权声明

本文仅代表作者观点,不代表Csuper立场。
本文系作者授权百度百家发表,未经许可,不得转载。