Mysql 转储恢复

Mysql 转储恢复

我遇到了一个大麻烦。我使用 5.0.77 版本制作了 mysql 转储,但没有设置兼容模式(我不知道这个问题)。实际的 mysql 服务器是 4.0.18 版本。今天我们的数据库崩溃了。很多表都丢失了。在尝试恢复转储时,它返回错误“第 18 行错误 1193:未知系统变量‘character_set_client’”。我们有什么办法可以恢复数据库吗?

非常感谢您的帮助。

答案1

如果需要的话,在另一个机器上安装 mysql 5.0.77、恢复,然后使用适当的选项重新转储可能是值得的。

这不是一个优雅的解决方案,但如果你遇到了“大麻烦”并且需要一些有效且快速的解决方法,那么这是我首先想到的方法。

答案2

希望你的转储文件不太大。复制并编辑它。如果它真的很大,使用sed或脚本。如果它足够小,用 vim 编辑它。

sed '/\/*!40101 SET character_set_client'/d < original > copy

看到该字符串的地方/*!40101 SET character_set_client请删除该行。服务器无论如何都无法理解它,并且它不会影响您的数据。

/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `location` (
  `locationId` int(11) NOT NULL DEFAULT '0',
  `releaseDate` date NOT NULL DEFAULT '0000-00-00',
  `id` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`releaseDate`,`locationId`,`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

相关内容