14.04 到 16.04 *杀死 * mysql

Ste*_*ere 2 upgrade mysql 14.04 16.04

定义:信任 - Ubuntu LTS 打包者从我这里丢失的东西。

我一丝不苟地维护着我的 14.04 LTS Web 服务器机器。它只有四个主要功能(ssh、ftp、http 和 mysql(供网页使用))。在我开始从 14.04 到 16.04 的版本升级之前,我确保

 sudo apt-get update
 sudo apt-get upgrade
 sudo apt-get dist-upgrade
Run Code Online (Sandbox Code Playgroud)

在尝试升级版本之前,绝对确定我拥有最新的 14.04 软件包。完成后,系统重新启动(并再次运行上述命令,以确保他们没有看到任何新内容),为了安全起见,我运行了 'sudo do-release-upgrade -d' 从14.04 至 16.04。

我们之前两个系统的一切都以同样的方式升级得很顺利,但是在mysql部分的web服务器升级挂了,它似乎破坏了我在系统上运行mysql的任何能力。时期。

根据我的阅读,强烈建议人们升级 mysql 5.5->5.6->5.7,因为直接从 5.5 跳转到 5.7 会导致一些表兼容性问题。不幸的是,我的(请记住,完全是最新的)Web 服务器仍在运行 mysql-5.5。

我有我在 do-release-upgrade 挂起时捕获的 /var/lib/mysql 的副本,但是 mysql-5.7 和 mysql-5.6 都拒绝使用它们。似乎不可能在 Ubuntu 16.04 上安装 mysql-5.5 以手动单步执行版本。我尝试从 mysql 网站获取软件包,但我只能在那里找到 mysql-server,而不是 -client、-common 或其他任何东西。

因此,从 14.04 升级到 16.04 似乎破坏了我的数据库。是的,我知道,没有当前备份是我的错,但是在两次完美升级之后,并且在截止日期之前(已经消失,因为现在数据库似乎永远消失了)我太舒服了——我有信任在构建升级的人中。我知道我应该提前检查是否有任何可能损坏的东西,但老实说,我认为这是包装工的工作。说客户应该检查一切就像说购买的汽车应该在购买前拆卸汽车并检查每个零件是否存在缺陷——这不会发生。

如果有任何方法可以在 Ubuntu 16.04 上返回到 mysql 5.5,以便我可以运行正确/推荐(通过 mysql)升级过程,请告诉我。如果没有,有人知道佛罗里达州中部有一个很好的原始尖叫治疗小组吗?

更新:通过构建虚拟 14.04 服务器并在其上修复/重建数据库文件,我已经设法使数据库再次处于良好的工作状态。我成功将虚拟 14.04 的 mysql 从 5.5 升级到 5.6。接下来,我需要了解我必须做什么才能确保 5.6 到 5.7 升级有效。

更新 2:尽管受到责骂,我还是设法让我修复的数据库在升级后的系统上的 mysql 5.6 下工作。现在我收到错误,因为没有安装对 mysql 的 PHP 支持。它们可能是婴儿的步骤,但这进步!

更新 3:成功!我重新安装了所有 php7 /mysql 包,并确保我的 Web 应用程序使用的是 mysqli 数据库类型,瞧!不过,我想我会在 mysql 5.6 上停留一段时间。直到我对 5.7.x 的升级路径更加满意为止。希望这可以为像我这样的其他人提供一个警示故事——但如果他们太像我了,那么他们不会看到这一点,直到为时已晚。

小智 5

发生这种情况是因为从 14.04 升级到 16.04 会导致不受支持的 mysql 升级(5.5 -> 5.7),这不是mysql记录的受支持的升级路径。解决此问题的最简单方法是将 mysql 升级到 5.6 ,同时仍低于 14.04。您首先(当然!)转储所有数据库来实现这一点;

mysqldump --lock-all-tables -u root -p --all-databases > backup.sql
Run Code Online (Sandbox Code Playgroud)

然后升级到mysql 5.6;

apt-get install mysql-server-5.6 mysql-client-5.6 mysql-server-core-5.6 mysql-client-core-5.6
Run Code Online (Sandbox Code Playgroud)

这样,您的所有数据库都将就地升级(目前在我的机器上)完全安全透明地升级到 5.6。升级后的唯一问题可能是 TIMESTAMP 条目。现在,在 do-release-upgrade 之后,mysql 仍然停留在 5.6,并且在发布升级期间不支持从 5.5 直接升级到 5.7 的问题从未出现过。