在基于 AWS Linux 的 EC2 上,将 mysql 5.6 升级到 8 不起作用

在基于 AWS Linux 的 EC2 上,将 mysql 5.6 升级到 8 不起作用

我正在使用 EC2 的 MySQL DB。EC2 的操作系统是基于 AWS Linux 的 Ubuntu。MySQL 的当前版本是 5.6.50。我打算将其升级到 8.0。我尝试使用此命令进行升级:sudo yum install mysql-community-server,但它显示了这些错误。

Error: Package: mysql-community-client-plugins-8.0.36-1.el7.x86_64 (mysql80-community)
           Requires: libsasl2.so.3()(64bit)
Error: Package: mysql-community-server-8.0.36-1.el7.x86_64 (mysql80-community)
           Requires: systemd
 You could try using --skip-broken to work around the problem

我怎么解决这个问题? 在此处输入图片描述

我当前的操作系统版本详细信息如下: 在此处输入图片描述

答案1

可能是你运行的是 Amazon Linux 1.0,该版本不支持 systemd。所以我认为你可能需要先升级操作系统,然后才能升级 myswl

答案2

不支持从 MySQL 5.6x 升级到 8.x...您需要先将 MySQL 升级到 5.7.9,然后才能从该版本升级到 8.x

https://dev.mysql.com/doc/refman/8.0/en/upgrade-paths.html

答案3

哦,天哪!?!你不会想用这种方式升级数据库基础设施吧。太棒了!

很多人都遇到过这个问题。几乎总是会出现这样的情况:恶心。我再怎么敦促你也不为过。退一步,好好做这件事。你会因为做得如此顺利而成为英雄!沐浴在闪烁的灯光下……

  1. 转储 将您的 mysql 数据库转储到文件中。您可能希望在非高峰期执行此操作,因为在转储过程中会锁定表可能给用户带来问题?

  2. 将最新的数据库转储放在 AWS 中安全的地方(最好在区域内)

  3. 启动新的 VM 并像平常一样安装 MySQL v8。确保从旧实例收集配置更改。

  4. 将之前的数据库转储移动到新机器上并导入可能的现场这样做,这不是一个好习惯。拉屎!!!

  5. 让每个人都将应用程序指向您刚刚熟练创建和迁移的新数据库服务器。一旦一切都在使用您的新 v8 MySQL DB,请停止旧的 DB VM。只需停止它。我建议您创建一个 AMI,以防万一忘记了什么。您可以对 VM 进行完整备份,或将磁盘连接到另一个实例。不要随意删除它。现在还不行。您可能需要从那里拿走一些东西......成为英雄!如果您的组织并不真正关心成本控制,那么请将停止的实例留在那里,直到某个计划和商定的时间终止并删除连接的磁盘。

当然,您可以非常聪明地使用 MySQL,并在旧数据库服务器和全新的 v8 数据库服务器之间设置复制。然后,一旦节点同步,就中断复制并将新数据库服务器提升为主服务器。不过,可能还需要做更多工作。

使用 apt 进行就地升级非常危险。如果第一次没有成功,会不会对客户产生影响?没有它,企业还能继续做生意吗?如果你搞砸了数据库,无法让它重新上线,你的老板会不会很生气?如果你对任何一个问题的回答是“是”,那么你真的应该考虑做得更好。更聪明!这可能会变得非常糟糕,但实际上并不一定如此。

相关内容