当一列包含sha2哈希时,如何从转储文件中恢复mysqldb



当前数据库:Mariadb 10.5,Mariadb 10.4的转储文件,OS:Arch Linux最近安装

转储文件大约是10MB,包括许多文本字符串,大约200-300个单词长。以下是导致转储文件无法完全加载的错误。

[root@mymachine ~] mysql -u root -p mydb < ~/jump/dump.sql

错误2005(HY000(第703行:未知MySQL服务器主机"Louis10UnBarron"(-2(

以上错误消息的格式与我所呈现的有点不同:Barron(-2(实际上在'n'下的行上,所以它看起来就像是换行符和额外的空格。

当我在SublimeText中打开转储文件时,字符串与十六进制混合在一起。

我认为字符集不匹配,所以我调整了新数据库的默认集以匹配旧数据库utf8。当我查看每个表的字符集时,新表和旧表都使用latin1。

我不知道下一步该怎么办。谢谢你的帮助。

附录:我意识到表中给我带来问题的一列是sha2散列。我想列类型(varbinary(不会影响mysql读取数据的方式。

附录2:我不是第一个遇到这个问题的人。在数据库中存储哈希必须是验证文本条目未更改的常用方法。当一列是哈希时,必须有一种方法从转储文件中恢复数据库!

10.4和10.5之间存在一些不可比性。

这就是为什么MariaDb提供了一个升级教程,它必须经过

参见手动

点7

运行mysql_upgrade。

mysql_upgrade做两件事:确保#mysql数据库中的系统表与新版本完全兼容。对所有表格进行快速检查,并将其标记为与MariaDB 的新版本兼容

对于在结束时执行至关重要

最新更新