从用 mysql 5.5 编写的数据库迁移到用 mysql 5.0 编写的数据库

Posted

技术标签:

【中文标题】从用 mysql 5.5 编写的数据库迁移到用 mysql 5.0 编写的数据库【英文标题】:Moving from a database written in mysql 5.5 to one written in mysql 5.0 【发布时间】:2016-11-24 05:38:06 【问题描述】:

我需要更改对所有数据库的直接访问权限,因为我需要使用外部云中的插件自动备份它们,以便在我的网站被黑客入侵时更快地恢复我的网站。问题是我使用的是旧版本的托管服务(godaddy),所以我的数据库在 mysql 5.5 版中,但为了使它们可以访问,我需要 5.0 版。因此,当我在旧版本中导入它们时,我会收到此错误:

1273 - 未知排序规则:'utf8mb4_unicode_ci'

有没有人遇到过这样的情况?

【问题讨论】:

这可能是XY problem 可能是这样,但正如我之前解释的,如果你在一家已经购买了套餐的公司工作,你必须解决:说这不是你的问题或尝试以任何方式解决它 我尝试解决real problem,而不是降级一个像样的服务器,也没有解决问题,因为我们买了一个产品,所以我们的恢复发生得更快。话又说回来,无论如何我都不会带着我的问题来到堆栈。 【参考方案1】:

utf8mb4 在 MySQL 5.0 中不受支持。

可以在备份之前将数据库更改为在 5.5 上使用 utf8,这样您就可以在 MySQL 5.0 上恢复它。

使用ALTER TABLEALTER DATABASE。请记住,您必须更改数据库默认字符集,每个表的表默认字符集,以及每个表中每个字符串列的字符集!

ALTER DATABASE dbname DEFAULT CHARACTER SET = utf8 DEFAULT COLLATE = utf8_unicode_ci;
ALTER TABLE mytable CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
-- repeat for each table

但在我看来,使用托管服务或任何不会升级 MySQL 的环境是荒谬的。不再支持 5.0 版。

甚至 MySQL 5.1 也更新了,也不再受支持。 5.0 和 5.1 的文档已从其网站上删除。

使用 MySQL 5.0,您真的回到了历史。您说的是已经过两代的软件。

切换托管服务提供商。

【讨论】:

我的朋友..如果是我的话,我已经切换了..但是我们有很多网站都有这种配置和自动续订,不幸的是一个月前就采取了行动..

以上是关于从用 mysql 5.5 编写的数据库迁移到用 mysql 5.0 编写的数据库的主要内容,如果未能解决你的问题,请参考以下文章

将 MS Access 97 转换为 MySQL 5.5(有任何工具吗?)

从用 C# 编写的程序中获取数据到 Java 程序中

如何从用python制作的gui连接到mysql数据库

MySQL 从 5.5 升级到 5.6,日期空条件失败

MySQL 5.5版本下载与安装

Laravel 5.5 使用生产数据库整合迁移