我不小心安装了 MySQL 8 并在那里做了很多工作,创建了大量数据。然后我使用 mysqldump 备份了所有数据库。
后来,我意识到我需要降级回 MySQL 5.7(甚至没有意识到我已经升级了)。
我已经卸载了 8 并安装了 5.7,但是我在从转储的 .sql 文件中导入数据时遇到了问题。
首先,我得到了错误ERROR 1273 (HY000) at line 1753: Unknown collation: 'utf8mb4_general_ci'
,我通过使用 Notepad++ 替换解决了这个问题:
utf8mb4_general_ci
和utf8_unicode_ci
utf8mb4
和utf8
utf8_unicode_520_ci
和utf8_unicode_ci
然后我还删除了 .sql 文件中与“mysql”数据库相关的部分。
现在命令mysql < alldb.sql
运行没有错误,但是当我查看我的数据时,很多数据都丢失了。
PS 我对有人可以帮助我感到乐观,但MySQL 8 文档说有点令人担忧:
不支持从 MySQL 8.0 降级到 MySQL 5.7,或从 MySQL 8.0 版本降级到以前的 MySQL 8.0 版本。唯一受支持的替代方法是恢复升级前的备份。因此,您必须在开始升级过程之前备份您的数据。
您假设删除 utf8mb4 字符集和排序规则,并在备份文件中添加相关字符集,然后尝试恢复。
喜欢 :
我认为你仍然会面临 mysql 模式恢复的问题,因为它的架构在 MySQL 8.0 中比 MySQL 5.7 发生了变化
实际上,我的问题似乎有一个错误的前提。
也许我的数据没有丢失。
有两个因素让我相信它是。
首先,当我跑的时候:
我看到比以前小得多的数据库(例如,v5.7 中的 0.5 MB 而不是 v8.0 中的 54.8 MB)。
但是在查看各种表的行数时,它们在 5.7 中似乎与 8.0 中相同。
其次,我对“mysql”数据库中的用户名和密码与我的一个应用程序的数据库之一的“用户”表中的用户名和密码有些混淆。