mysqldump導庫出錯 Duplicate entry ” for key 1
這個數據庫備份是用後台自帶的備份程序備份的,400多M,比較大,所以沒用phpmyadmin導入,進入cmd ,mysql -h localhost -u root -p 數據庫名<”備份的sql文件路徑”,卻出錯:ERROR 1062 (23000) at line 501: Duplicate entry ” for key 1,然後自動停止導入,回滾到原先狀態了,我日啊!
這是什麼問題引起的啊,上百度,上gg,也找不到好的解決辦法,只好 mysql -h localhost -u root -p 數據庫名<”備份的sql文件路徑” –f 出錯也會繼續導入了。
上網搜到了這條,先copy下來,慢慢研究:
ERROR 1062 (23000) at line 501: Duplicate entry ” for key 1 ERROR 1062 (23000): Duplicate entry 是什???啊? mysql> INSERT INTO userinfo VALUES (‘崔江虎 ‘, ’20030481′, ’2004B_8600661_03′, ”, ”, ”, ’2004B_8600661_03′);
ERROR 1062 (23000): Duplicate entry ’20030481′ for key 1
mysql> INSERT INTO userinfo VALUES (‘唐斌 ‘, ’20023109′, ’2004B_8600661_03′, ”, ”, ”, ’2004B_8600661_03′);
ERROR 1062 (23000): Duplicate entry ’20023109′ for key 1
mysql>
Re: ERROR 1062 (23000): Duplicate entry 是什???啊?
你的userinfo的第二??field要求是unique的,而你的table?已?有了一?l??,它的第二??field的值是20023109
跟你要insert的那?l??的第二??field的值是相同的
網上搜索分析原因:
可能是字段pid為primary key且auto_increment屬性,不能出現重復值。
而我在備份數據時,可能有數據寫入破壞了數據表。
嘗試了一些方法:
1、數據表部分字段屬性丟失 ALTER TABLE `cdb_posts` CHANGE `pid` `pid` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT
2、repair table cdb_posts
均失敗!
最後的解決方法:
一般是因為數據表文件損害導致,可用MySQL的修復工具myisamchk 工具修復。
cmd
myisamchk cdb_posts.myi -r
修復數據表就OK了!
解決辦法
現在附上解決辦法只要把原來的老數據清空導入就可以了。