作者: falcon 发表日期: 2007-01-19 21:11
复制链接
1. ERROR 1062 (23000) at line 1936: Duplicate entry ' ' for key 2
这个错误是我在恢复数据库的时候遇到的,我从mysql4.1.7的版本里头用
Quote: |
mysqldump -u user_name -p db_name > db_name.sql
|
备份了数据,准备恢复到mysql5.0.12中,但是新版本对primary key的检查更严格
因此,在我这样恢复的时候就出现了上面的错误
Quote: |
mysql -u user_name -p db_name < db_name.sql
|
解决办法:
在插入数据的时候忽略掉那个重复的项目,即在insert后面增加ignore,那么这么多的插入语句,怎么一条一条的加入呢,办法很简单,用sed
Quote: |
sed -e 's/INSERT INTO/INSERT ignore INTO/g' db_name.sql > db_name_ignore.sql
|
2. ERROR 1005 (HY000): Can't create table
有时候在用
Quote: |
mysql -u user_name -p db_name < db_name.sql
|
恢复数据库的时候,可能出现这样的问题
但是,有时候可以这么简单的解决
解决办法:把数据库删了,重新创建一个,然后再把数据库导入进去
Quote: |
shell> drop database db_name shell> create database db_name
|
然后再导入数据用mysql -u user_name -p db_name < db_name.sql
补充:
当然,可能错误的原因并不一样哦,另外在这里你会发现shell是多么有用,所以诸如sed,grep,awk,uniq,sort,netstat,tracepath等等一些常见的工具最好还是花费一些时间认真学习一下吧。