本周早些时候,我使用 CPanel WHM 界面将 MySQL 从 v5.0 升级到 5.6。昨晚我收到一封来自系统的电子邮件,声称旧版 MySQL RPM 现在存在问题。电子邮件中写道:
Problems were detected with cPanel-provided files which are RPM
controlled. If you did not make these changes intentionally, you can
correct them by running:
> /usr/local/cpanel/scripts/check_cpanel_rpms --fix
The following RPMs are found to be altered from their original install
state:
compat-MySQL51-shared,5.1.73,4.cp1136,/usr/lib64/libmysqlclient.so.16.0.0
当我在机器上运行 check_cpanel_rpms 时,我得到了:
/usr/local/cpanel/scripts/check_cpanel_rpms --list-only prelink: /usr/lib64/libmysqlclient.so.16.0.0: 自预链接以来,至少有一个文件的依赖项发生了变化 [20141025.184811] [20141025.184811] 检测到 cPanel 提供的受 RPM 控制的文件存在问题。 [20141025.184811] 如果您不是故意进行这些更改,则可以通过运行以下命令进行更正: [20141025.184811] [20141025.184811] > /usr/local/cpanel/scripts/check_cpanel_rpms --fix [20141025.184811] [20141025.184811] 发现以下文件与其原始 RPM 不同: [20141025.184811] compat-MySQL51-shared,5.1.73,4.cp1136 [20141025.184811]
它抱怨的是 5.1,这不是当前正在运行的版本。
这个--fix
选项check_cpanel_rpms
非常神奇——我不确定它是否可以安全运行;它可能会作为“修复”的一部分关闭我的 MySQL 实例。
我该如何纠正这个警告?如果可能的话,我更喜欢一种不会导致 MySQL 中断的方法。
答案1
如果您不想运行该命令,您可以尝试运行 EasyApache 以使用正确的 mysql 客户端扩展重建 Apache/PHP,尽管如果您选择无人值守升级,该命令可能已经运行,因为如果没有完成 MySQL 升级,您的某些站点在升级后将无法工作。
另外,我认为如果你运行
/usr/local/cpanel/scripts/check_cpanel_rpms --fix
。
我已在服务器上多次运行该命令来解决类似问题,并且从未遇到过问题。
如果您已经通过 WHM 进行了 MySQL 升级,则该命令应该只会删除旧的 MySQL RPM 并保留当前的 MySQL 5.6 RPM。
为了安全起见,您应该在运行命令之前备份所有数据库,以防出现任何问题,但这不应该导致任何 MySQL 停机。
您可以通过运行来备份所有数据库
mysqldump --all-databases > all_databases.sql
将所有数据库备份到一个文件中,或者
for i in `mysql -e "show databases;"`; do mysqldump $i > /folder_path/$i.sql; done
将每个数据库备份到其自己的文件中。