从 MySQL 8 导出时如何将 mysqldump .sql 文件导入 MySQL 5.7

Rya*_*yan 8 mysql mysqldump mysql-5.7 mysql-8.0

我不小心安装了 MySQL 8 并在那里做了大量工作,创建了大量数据。然后我使用 mysqldump 备份了所有数据库。

后来,我意识到我需要降级回 MySQL 5.7(甚至没有意识到我已经升级了)。

我已经卸载了 8 并安装了 5.7,但是我在从转储的 .sql 文件中导入我的数据时遇到了问题。

首先,我得到了错误ERROR 1273 (HY000) at line 1753: Unknown collation: 'utf8mb4_0900_ai_ci',我通过使用 Notepad++ 替换解决了这个错误:

  • utf8mb4_0900_ai_ciutf8_unicode_ci
  • utf8mb4utf8
  • utf8_unicode_520_ciutf8_unicode_ci

然后我还删除了 .sql 文件中与'mysql' 数据库相关的部分。

现在命令mysql < alldb.sql运行没有错误,但是当我查看我的数据时,很多数据都丢失了。

PS 我对有人可以帮助我感到乐观,但MySQL 8 文档说有点令人担忧:

不支持从 MySQL 8.0 降级到 MySQL 5.7,或从 MySQL 8.0 版本降级到以前的 MySQL 8.0 版本。唯一受支持的替代方法是恢复升级前的备份。因此,您必须在开始升级过程之前备份数据。

Rya*_*yan 0

事实上,我的问题似乎有一个错误的前提。

也许我的数据并没有丢失。

有两个因素让我相信确实如此。

首先,当我跑步时:

SELECT table_schema AS "Database", SUM(data_length + index_length) / 1024 / 1024 AS "Size (MB)" 
FROM information_schema.TABLES 
GROUP BY table_schema;
Run Code Online (Sandbox Code Playgroud)

我看到数据库比以前小得多(例如,v5.7 中为 0.5 MB,而不是 v8.0 中的 54.8 MB)。

但从各个表的行数来看,5.7 中的行数似乎与 8.0 中的行数相同。

其次,我对“mysql”数据库中的用户名和密码与我的应用程序之一的数据库之一的“用户”表中的用户名和密码有些困惑。