在遇到类似错误,一般为DBD的包没有编译好,需要重新编译,即可;如:
[root@monitor ~]# mmm_control checks db2 ping [last change: 2013/02/27 13:23:58] OK db2 mysql [last change: 2013/02/27 13:23:58] UNKNOWN: Error occurred: 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.18: cannot open shared object file: No such file or directory at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/DynaLoader.pm line 230, <STDIN> line 1. db2 rep_threads [last change: 2013/02/27 13:23:58] UNKNOWN: Error occurred: 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.18: cannot open shared object file: No such file or directory at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/DynaLoader.pm line 230, <STDIN> line 1. db2 rep_backlog [last change: 2013/02/27 13:23:58] UNKNOWN: Error occurred: 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.18: cannot open shared object file: No such file or directory at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/DynaLoader.pm line 230, <STDIN> line 1. db1 ping [last change: 2013/02/27 13:23:58] OK db1 mysql [last change: 2013/02/27 13:23:58] at (eval 16) line 3 db1 rep_threads [last change: 2013/02/27 13:23:58] at (eval 16) line 3 db1 rep_backlog [last change: 2013/02/27 13:23:58] at (eval 16) line 3 [root@monitor ~]#
[root@monitor DBD-mysql-4.018]# perl Makefile Makefile Makefile.PL Makefile.PL.embedded [root@monitor DBD-mysql-4.018]# perl Makefile Makefile Makefile.PL Makefile.PL.embedded [root@monitor DBD-mysql-4.018]# perl Makefile.PL --mysql_config=/usr/local/mysq l/bin/mysql_config PLEASE NOTE: For 'make test' to run properly, you must ensure that the database user 'root' can connect to your MySQL server and has the proper privileges that these tests require such as 'drop table', 'create table', 'drop procedure', 'create procedure' as well as others. mysql> grant all privileges on test.* to 'root'@'localhost' identified by 's3kr1t'; You can also optionally set the user to run 'make test' with: perl Makefile.PL --testuser=username I will use the following settings for compiling and testing: cflags (mysql_config) = -I/usr/local/mysql/include -g embedded (mysql_config) = libs (mysql_config) = -L/usr/local/mysql/lib -lmysqlclient -lpthread -lz -lm -lrt -lssl -lcrypto -ldl mysql_config (Users choice) = /usr/local/mysql/bin/mysql_config nocatchstderr (default ) = 0 nofoundrows (default ) = 0 ssl (guessed ) = 1 testdb (default ) = test testhost (default ) = testpassword (default ) = testsocket (default ) = testuser (guessed ) = root To change these settings, see 'perl Makefile.PL --help' and 'perldoc INSTALL'. Using DBI 1.52 (for perl 5.008008 on i386-linux-thread-multi) installed in /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/auto/DBI/ Writing Makefile for DBD::mysql [root@monitor DBD-mysql-4.018]# make gcc -c -I/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/auto/DBI -I/usr/local/mysql/include -g -DDBD_MYSQL_WITH_SSL -DDBD_MYSQL_INSERT_ID_IS_GOOD -g -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -DVERSION=\"4.018\" -DXS_VERSION=\"4.018\" -fPIC "-I/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE" dbdimp.c dbdimp.c: In function 鈉ount_params? dbdimp.c:94: warning: suggest parentheses around assignment used as truth value dbdimp.c:137: warning: suggest parentheses around assignment used as truth value dbdimp.c: In function 鈊bd_discon_all? dbdimp.c:2172: warning: unused variable 鈏mp_xxh? dbdimp.c: In function 鈓ysql_st_prepare? dbdimp.c:2593: warning: unused variable 鈒imit_flag? gcc -c -I/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/auto/DBI -I/usr/local/mysql/include -g -DDBD_MYSQL_WITH_SSL -DDBD_MYSQL_INSERT_ID_IS_GOOD -g -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -DVERSION=\"4.018\" -DXS_VERSION=\"4.018\" -fPIC "-I/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE" mysql.c mysql.xs: In function 釾S_DBD__mysql__db_do? mysql.xs:242: warning: unused variable 鈙tatement_ptr? mysql.xs: In function 釾S_DBD__mysql__st_more_results? mysql.xs:588: warning: implicit declaration of function 鈓ysql_st_next_results? mysql.xs:587: warning: unused variable 鈘etval? mysql.xs: In function 釾S_DBD__mysql__GetInfo_dbd_mysql_get_info? mysql.xs:724: warning: implicit declaration of function 鈏s_prefix? Running Mkbootstrap for DBD::mysql () chmod 644 mysql.bs rm -f blib/arch/auto/DBD/mysql/mysql.so /usr/bin/perl myld gcc -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -L/usr/local/lib dbdimp.o mysql.o -o blib/arch/auto/DBD/mysql/mysql.so \ -L/usr/local/mysql/lib -lmysqlclient -lpthread -lz -lm -lrt -lssl -lcrypto -ldl \ chmod 755 blib/arch/auto/DBD/mysql/mysql.so cp mysql.bs blib/arch/auto/DBD/mysql/mysql.bs chmod 644 blib/arch/auto/DBD/mysql/mysql.bs Manifying blib/man3/DBD::mysql.3pm Manifying blib/man3/DBD::mysql::INSTALL.3pm Manifying blib/man3/Bundle::DBD::mysql.3pm [root@monitor DBD-mysql-4.018]# make test PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/00base....................ok 1/6 # Failed test 'use DBD::mysql;' # in t/00base.t at line 21. # Tried to use 'DBD::mysql'. # Error: Can't load '/usr/local/DBD-mysql-4.018/blib/arch/auto/DBD/mysql/mysql.so' for module DBD::mysql: libmysqlclient.so.18: cannot open shared object file: No such file or directory at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/DynaLoader.pm line 230. # at (eval 6) line 2 # Compilation failed in require at (eval 6) line 2. # BEGIN failed--compilation aborted at t/00base.t line 21. t/00base....................NOK 2FAILED--Further testing stopped: Unable to load DBD::mysql make: *** [test_dynamic] Error 9 [root@monitor DBD-mysql-4.018]# make install Files found in blib/arch: installing files in blib/lib into architecture dependent library tree Writing /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/DBD/mysql/.packlist Appending installation info to /usr/lib/perl5/5.8.8/i386-linux-thread-multi/perllocal.pod [root@monitor DBD-mysql-4.018]# cp /usr/local/mysql mysql/ mysql-5.5.13/ mysql-5.5.13.tar.gz [root@monitor DBD-mysql-4.018]# cp /usr/local/mysql/include/my my_alloc.h my_getopt.h mysql_com.h mysql_version.h my_attribute.h my_global.h mysqld_ername.h my_sys.h my_compiler.h my_list.h mysqld_error.h my_xml.h my_config.h my_net.h mysql_embed.h my_dbug.h my_pthread.h mysql.h my_dir.h mysql/ mysql_time.h [root@monitor DBD-mysql-4.018]# cp /usr/local/mysql/include/my my_alloc.h my_getopt.h mysql_com.h mysql_version.h my_attribute.h my_global.h mysqld_ername.h my_sys.h my_compiler.h my_list.h mysqld_error.h my_xml.h my_config.h my_net.h mysql_embed.h my_dbug.h my_pthread.h mysql.h my_dir.h mysql/ mysql_time.h [root@monitor DBD-mysql-4.018]# cp /usr/local/mysql/include/mysql mysql/ mysqld_ername.h mysql_embed.h mysql_time.h mysql_com.h mysqld_error.h mysql.h mysql_version.h [root@monitor DBD-mysql-4.018]# cp /usr/local/mysql/include/mysql mysql/ mysqld_ername.h mysql_embed.h mysql_time.h mysql_com.h mysqld_error.h mysql.h mysql_version.h [root@monitor DBD-mysql-4.018]# cp /usr/local/mysql/include/mysql mysql/ mysqld_ername.h mysql_embed.h mysql_time.h mysql_com.h mysqld_error.h mysql.h mysql_version.h [root@monitor DBD-mysql-4.018]# cp /usr/local/mysql/include/mysql mysql/ mysqld_ername.h mysql_embed.h mysql_time.h mysql_com.h mysqld_error.h mysql.h mysql_version.h [root@monitor DBD-mysql-4.018]# cp /usr/local/mysql/include/mysql mysql/ mysqld_ername.h mysql_embed.h mysql_time.h mysql_com.h mysqld_error.h mysql.h mysql_version.h [root@monitor DBD-mysql-4.018]# cp /usr/local/mysql/include/mysql* /usr/include/ cp: omitting directory `/usr/local/mysql/include/mysql' [root@monitor DBD-mysql-4.018]# cp /usr/local/mysql/include/mysql* /usr/include/ cp: omitting directory `/usr/local/mysql/include/mysql' cp: overwrite `/usr/include/mysql_com.h'? y cp: overwrite `/usr/include/mysqld_ername.h'? y cp: overwrite `/usr/include/mysqld_error.h'? y cp: overwrite `/usr/include/mysql_embed.h'? y cp: overwrite `/usr/include/mysql.h'? y cp: overwrite `/usr/include/mysql_time.h'? y cp: overwrite `/usr/include/mysql_version.h'? y [root@monitor DBD-mysql-4.018]# y -bash: y: command not found [root@monitor DBD-mysql-4.018]# cp /usr/local/mysql/lib/* /usr/lib cp: omitting directory `/usr/local/mysql/lib/plugin' [root@monitor DBD-mysql-4.018]# mmm_control checks db2 ping [last change: 2013/02/27 13:23:58] OK db2 mysql [last change: 2013/02/27 15:05:34] OK db2 rep_threads [last change: 2013/02/27 13:23:58] ERROR: Replication is broken db2 rep_backlog [last change: 2013/02/27 15:05:34] OK: Backlog is null db1 ping [last change: 2013/02/27 13:23:58] OK db1 mysql [last change: 2013/02/27 15:05:34] OK db1 rep_threads [last change: 2013/02/27 13:23:58] ERROR: Replication is not set up db1 rep_backlog [last change: 2013/02/27 13:23:58] ERROR: Replication is not set up [root@monitor DBD-mysql-4.018]#