yum 将 mysql 从 5.1 更新到 5.5

ele*_*_al 7 mysql mysql-5.5 mysql-5.1 upgrade

我只是在“百胜更新”服务器的过程中。它建议执行的更新之一是从 mysql 5.1 升级到 5.5。

mysql 服务器在主-主复制设置中与另一个 5.1 mysql 实例一起运行。我还会将另一个主更新到 5.5,但希望始终保持在线状态。这个 master 也有许多 5.1 mysql slaves 从它复制。

有谁知道:

  1. yum 更新从 5.1 到 5.5 是安全的,无需大量数据重建
  2. 如果上面的复制设置会出现问题。

编辑:这是一个 centos 5.4 安装。然而,更新来自非标准 remi repo。

Rol*_*DBA 2

升级到 MySQL 5.5 时无法维护现有的复制设置

你必须与主/从一起去。原因如下:

有人问了一个关于二进制日志中出现乱码的问题,我回答了这个问题

在我的回答中,我解释了二进制日志在不同版本的 MySQL 中从不同的位置开始

以下是这些职位:

  • MySQL 5.5 为 107
  • MySQL 5.1 为 106
  • MySQL 5.0 及更高版本为 98

通过复制,这些数字也适用于中继日志。最终效果是从站可以从旧版本的 MySQL 进行复制,但反之则不行。

您最好执行以下操作:

  1. 将主/主转换为主/从
  2. 在Slave上升级到MySQL 5.5
  3. 将所有应用程序指向从站(现在称为 NewMaster)
  4. Master上的mysql服务停止
  5. 在Master(现在称为NewSlave)上升级到MySQL 5.5但不启动mysql
  6. NewMaster 上的 mysql 服务停止
  7. rsync NewMaster 的 /var/lib/mysql 到 NewSlaves 的 /var/lib/mysql
  8. NewMaster 上的 rm /var/log/mysql/master.info
  9. NewSlave 上的 rm /var/log/mysql/master.info
  10. 服务 mysql start --skip-networking on NewMaster
  11. 在 NewMaster 上运行 RESET MASTER
  12. 在 NewMaster 上重启 mysql 服务
  13. 在 NewSlave 上启动 mysql 服务
  14. 在 NewSlave 上运行 RESET MASTER
  15. 使用位置 107 作为起始 master_log_pos 设置主/主复制

关于用yum升级,一想到就惊慌失措,惊声尖叫。

这是我比较保守的方法:

  1. 我会 mysqldump 除了 mysql 模式之外的所有内容。
  2. 运行此命令为所有 mysql 用户授权生成 SQL:

    mysql -hhostaddr -umyuserid -pmypassword --skip-column-names -A -e"SELECT CONCAT('显示''',用户,'''@''',主机,''';') FROM mysql .user WHERE 用户<>''" | mysql -hhostaddr -umyuserid -pmypassword --skip-column-names -A | mysql -hhostaddr -umyuserid -pmypassword --skip-column-names -A | sed 's/$/;/g' > /root/MySQLGrants.sql

  3. 卸载MySQL 5.1

  4. 手动从 RPM 安装 MySQL 5.5。
  5. 将/root/MySQLGrants.sql加载到MySQL 5.5中
  6. 将 mysqldump 的数据加载回 MySQL 5.5