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_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 版本。唯一受支持的替代方法是恢复升级前的备份。因此,您必须在开始升级过程之前备份数据。
事实上,我的问题似乎有一个错误的前提。
也许我的数据并没有丢失。
有两个因素让我相信确实如此。
首先,当我跑步时:
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”数据库中的用户名和密码与我的应用程序之一的数据库之一的“用户”表中的用户名和密码有些困惑。