作者: falcon 發(fā)表日期: 2007-01-19 21:11
復(fù)制鏈接
1. ERROR 1062 (23000) at line 1936: Duplicate entry ' ' for key 2
這個錯誤是我在恢復(fù)數(shù)據(jù)庫的時候遇到的,我從mysql4.1.7的版本里頭用
Quote: |
mysqldump -u user_name -p db_name > db_name.sql
|
備份了數(shù)據(jù),準(zhǔn)備恢復(fù)到mysql5.0.12中,但是新版本對primary key的檢查更嚴(yán)格
因此,在我這樣恢復(fù)的時候就出現(xiàn)了上面的錯誤
Quote: |
mysql -u user_name -p db_name < db_name.sql
|
解決辦法:
在插入數(shù)據(jù)的時候忽略掉那個重復(fù)的項(xiàng)目,即在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
|
恢復(fù)數(shù)據(jù)庫的時候,可能出現(xiàn)這樣的問題
但是,有時候可以這么簡單的解決
解決辦法:把數(shù)據(jù)庫刪了,重新創(chuàng)建一個,然后再把數(shù)據(jù)庫導(dǎo)入進(jìn)去
Quote: |
shell> drop database db_name shell> create database db_name
|
然后再導(dǎo)入數(shù)據(jù)用mysql -u user_name -p db_name < db_name.sql
補(bǔ)充:
當(dāng)然,可能錯誤的原因并不一樣哦,另外在這里你會發(fā)現(xiàn)shell是多么有用,所以諸如sed,grep,awk,uniq,sort,netstat,tracepath等等一些常見的工具最好還是花費(fèi)一些時間認(rèn)真學(xué)習(xí)一下吧。