我运行 Bugzilla 的 checksetup.pl(迁移旧版本),它总是返回:
Reading ./localconfig.
Checking for DBD-mysql (v4.00) Ok: found v4.005
Had to create DBD::mysql::dr::imp_data_size unexpectedly at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DBI.pm line 1229, <DATA> line 225.
Use of uninitialized value in subroutine entry at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DBI.pm line 1229, <DATA> line 225.
Had to create DBD::mysql::db::imp_data_size unexpectedly at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DBI.pm line 1259, <DATA> line 225.
Use of uninitialized value in subroutine entry at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DBI.pm line 1259, <DATA> line 225.
There was an error connecting to MySQL:
Undefined subroutine &DBD::mysql::db::_login called at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DBD/mysql.pm line 142, <DATA> line 225.
MySQL 版本:
[root@bugzilla-core TMP]# mysql --version
Mysql Ver 14.12 Distrib 5.0.60sp1, for redhat-linux-gnu (x86_64) using readline 5.1
和mysql_config:
[root@bugzilla-core TMP]# mysql_config
Usage: /data01/mysql-5.0.60/bin/mysql_config [OPTIONS]
Options:
--cflags [-I/data01/mysql-5.0.60/include -g]
--include [-I/data01/mysql-5.0.60/include]
--libs [-rdynamic -L/data01/mysql-5.0.60/lib -lmysqlclient -lz -lcrypt -lnsl -lm -lmygcc]
--libs_r [-rdynamic -L/data01/mysql-5.0.60/lib -lmysqlclient_r -lz -lpthread -lcrypt -lnsl -lm -lpthread -lmygcc]
--socket [/tmp/mysql.sock]
--port [0]
--version [5.0.60sp1]
--libmysqld-libs [-rdynamic -L/data01/mysql-5.0.60/lib -lmysqld -lz -lpthread -lcrypt -lnsl -lm -lpthread -lrt -lmygcc]
现在,我尝试了最新版本的 DBD-mysql (4.0.14)。我完全迷失了方向,不知所措。我不知道接下来该怎么做。搜索了网络,但没有任何结果。
有任何想法吗?
答案1
有一个可能相关的主题服务器故障. 尽管如此,我觉得可能存在 32 位/64 位混合匹配问题 - 可能是安装了错误的 RPM 或类似问题。也许可以尝试从源代码构建 dbd-mysql?
答案2
您必须始终在您所使用的平台上根据您所使用的 MySQL 版本构建 DBD::mysql。