我正在接管一个旧数据库,在从我的转储中进行恢复测试时,我发现一个表被错误地备份,表定义被截断。
查看实时数据库,我发现了一个名称中带有特殊字符的列名。即列名是Località。
我当前的 mysql 转储产生以下内容:
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `contabilita_banche` (
`ID_Banca` int(6) unsigned NOT NULL default '0',
`Descrizione` varchar(70) default NULL,
`Località;
/*!40101 SET character_set_client = @saved_cs_client */;
Run Code Online (Sandbox Code Playgroud)
第一个问题是表并没有到此结束,Località后面还有其他字段,所以结构转储不完整。除此之外,转储不会引发任何错误,并且数据会正确转储到最后。
我尝试了几个命令,都没有成功:
mysqldump -r /tmp/cbnew2.sql --default-character-set=latin1 --no-tablespaces --skip-lock-tables --quick -u root -p -h host Dbname contabilita_banche
mysqldump -r /tmp/cbnew2.sql --default-character-set=utf8 --no-tablespaces --skip-lock-tables --quick -u root -p -h host Dbname contabilita_banche
Run Code Online (Sandbox Code Playgroud)
服务器版本是 …