【发布时间】:2010-09-06 23:54:44
【问题描述】:
我有一个当前在 5.0.27 服务器上运行的数据库。我想迁移到新的 5.1.41 服务器。
我 mysqldump'd 所有的文件。恢复时出现错误
ERROR 1062 (23000) at line 21: Duplicate entry 'weiÃ' for key 'title'
我已将故障范围缩小到这个脚本,我可以运行它但它失败了:
--
-- Table structure for table `word`
--
set names utf8;
DROP TABLE IF EXISTS `word`;
CREATE TABLE `word`
(
`wordid` int (10) unsigned NOT NULL auto_increment,
`title` char (50) NOT NULL default '',
PRIMARY KEY (`wordid`),
UNIQUE KEY `title` (`title`)
) ENGINE=MyISAM AUTO_INCREMENT=280707 DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
--
-- Dumping data for table `word`
--
LOCK TABLES `word` WRITE;
INSERT INTO `word` VALUES
(198036,'weis'),
(241473, unhex('776569C39F'));
UNLOCK TABLES;
编辑 - 更改为 UNHEX。
我检查并重新检查了两台服务器之间的所有字符集和排序规则变量,它们看起来完全相同。即使不是,我也会自己指定排序规则。
关于我在这里做错了什么的任何线索?
编辑:这是我用来转储数据库的命令:
mysqldump --add-drop-table --add-locks --disable-keys --lock-tables --quick -uusername -ppassword database > filename
加载
mysql -D$MYSQL_DB -u$MYSQL_USER -p$MYSQL_PASSWD < filename
如何检查客户端连接的排序规则?
【问题讨论】:
-
我刚试过,效果很好。我正在使用 5.1.41-3ubuntu12.6。你呢?
-
mysql Ver 14.14 Distrib 5.1.41,对于使用 readline 6.1 的 debian-linux-gnu (i486),您使用的是什么字符集。我确信这是问题所在,但我不知道有什么区别。
-
另外,我重新编辑以将插入更改为使用 UNHEX .....当您使用该版本时它是否仍然适用于您(我认为不同的编辑器会破坏脚本)。跨度>
标签: mysql mysqldump mysql-error-1062