我在 CentOS 4.4 机器上安装了 Virtuozzo VPS,运行 Plesk 8.6。我将 MySQL 从 4.1 升级到了 5.0,但我不得不使用 rpm -Uvh --nodeps 来绕过一些专门依赖于 mysqlclient14 的 Plesk 包。我以为一旦安装了 15,它们就会正常工作,因为Parallels 声称升级 MySQL 不会遇到任何兼容性问题升级成功,MySQL 看起来运行良好,但现在 Plesk 在登录屏幕上出现此错误:
错误:PleskFatalException Components::componentUpdate() 失败:无法执行实用程序 packagemng:来自实用程序的空错误消息。 0:/usr/local/psa/admin/auto_prepend/auth.php3:530
以下是来自 Plesk 的 Apache 实例的错误日志:
[root@hq 5.0-centosplus]# tail -n 20 /usr/local/psa/admin/logs/httpsd_error_log ... [2011 年 5 月 24 日星期二 15:41:07] [错误] Components::componentUpdate() 失败:无法执行实用程序 packagemng:来自实用程序的错误消息为空。 /usr/local/psa/admin/bin/packagemng:加载共享库时出错:libmysqlclient.so.14:无法打开共享对象文件:没有此文件或目录
/usr/lib/mysql/libmysqlclient.so.14 已被 libmysqlclient.so.15 替换。我该如何告诉 Apache/PHP 使用 15 而不是 14?我在 httpsd.conf 或 php.ini 中没有看到任何内容。
我从 /usr/lib/mysql 中的 14 个旧文件创建了符号链接,但这并没有解决问题。现在 httpsd_error_log 只显示:
[2011 年 5 月 24 日星期二 16:07:11] [错误] Components::componentUpdate() 失败:无法执行实用程序 packagemng:来自实用程序的错误消息为空。 /usr/local/psa/admin/bin/packagemng:/usr/lib/mysql/libmysqlclient.so.14:未找到版本“libmysqlclient_14”(/usr/local/psa/admin/bin/packagemng 所需)
答案1
安装 Atomic Rocket Turtle 的 RPM 存储库并输入 yum install mysqlclient14 mysqllibclient14。如果不存在则:
- yum 安装 mysql
- yum 搜索 mysql | grep 客户端
- yum 提供 mysqllibclient.so.14
- yum 安装 mysqlclient
- yum 安装 mysql-libs
顺便说一句,您应该能够成功运行带有 MySQL-5 的 Plesk 8.6,我做到了,它运行良好!我建议随后删除 ART 的存储库,无需一直运行最新的 rpm,这会带来更多问题而不是乐趣。
我遇到了和你一样的问题,不过是 mysqllibclient.so.15。如果你需要帮助,可以在 irc.freenode.net 上的 #plesk 中找我。
答案2
我通过从另一个 8.6 框复制libmysqlclient.so.14.0.0
和libmysqlclient_r.so.14.0.0
、将它们 chmod 为 755 并分别从libmysqlclient.so.14
和创建符号链接来修复了这个问题libmysqlclient_r.so.14
。我还运行了ldconfig之后,但我不确定是否有必要。