我尝试将Expression Engine网站从一个服务器迁移到另一个服务器。
我使用的是MySQL 5.1版,但在我的新服务器上,我使用的是5.5版本。
我刚刚将数据库从旧服务器上的数据目录复制到新服务器,我的网站无法正常运行。
当我从旧服务器恢复带有MySQL Dump文件的数据库时,该网站可以运行。
将MySQL数据库从一台服务器复制并粘贴到另一台服务器是否存在问题?为什么MySQL Dump恢复不会受到同一问题的影响?
我正在尝试使用此信息来提供良好的备份解决方案。
答案 0 :(得分:1)
转储和恢复方法有效,因为转储文件基本上只是一堆“CREATE TABLE”和“INSERT”语句。转储和还原使用基本SQL语句从头开始重建数据库。复制和粘贴不起作用,因为您使用不同的数据格式在不同版本的数据库之间移动。如果您在具有相同版本的MySQL和相同配置的计算机之间移动,那么只需复制数据目录即可正常工作。使用转储/恢复方法是最可靠的方法,但在大型(比如50 GB甚至更大)数据库上通常非常耗时。
答案 1 :(得分:0)
最好的备份解决方案是转储SQL而不是复制文件。
mysqldump
实用程序使用它的条件语句提供所有兼容数据(IIRC)到MySQL 4.0的完全转储。
我有一种感觉,在5.1和5.5之间复制数据目录的原因是因为引擎可能改变了它们存储数据的方式。我有一个与InnoDB相关的问题,这是一个背后的痛苦。长话短说我从来没有得到数据,遗憾的是没有SQL转储(硬盘驱动器失败!)。
无论如何,mysqldump
是最好的工具,因为它创建了兼容的SQL语句,这些语句应该适用于过去和未来的大量MySQL版本。
答案 2 :(得分:0)
我没有查看详细信息,但MySQL数据文件是二进制文件,可能在版本之间不直接兼容。 MySQLdump生成的文件只是用于重新创建数据库的SQL指令列表,因此它们在版本之间会更兼容,但不一定向后兼容,因此您可能无法从5.5开始 - > 5.1如果你不得不这样做。