MySQL: Duplicate entry for key

Apollon Oikonomopoulos apoikos at csl.mech.ntua.gr
Wed Sep 5 13:13:16 EEST 2007


On Wednesday 05 September 2007 01:49:39 Panagiotis Palias wrote:
> Apollon Oikonomopoulos wrote:
> > **Για να επιβεβαιώσουμε ότι όντως έτσι έγιναν τα πράγματα, κάνε ένα `grep
> > "SET NAMES" dump.sql' και ένα `grep "CHARSET=" dump.sql'. Λογικά θα
> > πρέπει να βρει ένα SET NAMES utf8 και πολλά CHARSET=latin1.**
>
> Το ότι δε μου έβγαλε τίποτα είναι ανησυχητικό;
> Το grep δε βρήκε τα patterns μέσα στη βάση.
>
Μπορείς να κάνεις ένα head -n 20 phpbb_db_backup.sql ;

>
> cat phpbb_db_backup.sql | iconv -f utf-8 -t iso8859-1 | iconv -f
> iso8859-7 -t utf-8 > dump-fixed.sql
> iconv: illegal input sequence at position 2491
>
> η γραμμή 2491 περιέχει το εξήςINSERT INTO phpbb_banner_stats (banner_id,
> click_date, click_ip, click_user, user_duration) VALUES('1',
> '1077183641', '8d1d262c', '-1', '3
> 752');
>

Το σφάλμα αυτό σημαίνει ότι εμφανίστηκε λάθος στο χαρακτήρα 2491, όχι στη 
γραμμή 2491. Με τον όρο "position" νομίζω ότι η iconv(3) εννοεί multibyte 
χαρακτήρες (μιας και έχουμε UTF8).

>
> Βάσει όλων αυτών ξέρεις τι μπορεί να συμβαίνει ή όπως λες είναι χαμένη
> υπόθεση και να προσπαθήσω να σβήσω τις insert στο phpbb_search_wordlist;
> Ευχαριστώ για τον κόπο και τη βοήθεια!

Βασικά το κύριο πρόβλημα είναι ότι ενδεχομένως, ακόμα και να σβήσεις τις 
INSERT, το φόρουμ σου θα βγάζει αλαμπουρνέζικα γιατί έχει αλλιωθεί η 
κωδικοποίηση χαρακτήρων. Η πρωτότυπη βάση υπάρχει σε ένα running mysql 
instance πουθενά;


-- 
------------------------------------------------------------------------------
 Apollon S. Oikonomopoulos
 PhD Student
 Control Systems Lab, Mechanical Eng. Dept.
 National Technical University of Athens
 9 Heroon Polytechniou Str., Zografou
 Athens 15700, Greece
 
 Tel : ++30-210-772-1726 
 e-mail : apoikos at csl.mech.ntua.gr
------------------------------------------------------------------------------




More information about the Linux-greek-users mailing list