MySQL kai character set

Thomas Venieris mot at freemail.gr
Tue May 22 22:46:09 EEST 2007


On Tuesday 22 May 2007 01:01, Thomas Venieris wrote:
> Το κόλπο είναι το εξής:
>
> Πρέπει να κάνεις dump την βάση, ορίζοντας το encoding που χρησιμοποιεί
> (latin1) και ταυτόχρονα να εμποδίσεις το mysqldump να ορίσει encoding με
> την SET NAMES. Πιο συγκεκριμένα, πρέπει να κάνεις το εξής:
>
> mysqldump --skip-opt --add-drop-table --add-locks --quick --extended-insert
> --lock-tables --disable-keys --default-character-set=latin1
> --skip-set-charset  -u<username> -p<password> <databasename> > <filename>

Διορθώνω τον εαυτό μου λέγοντας πως αν παραλλείψεις την 
παράμετρο --create-options, μπορεί μεν να μην ορίσει το dump encoding στα 
tables, αλλά θα παραλλείψει και άλλες μικρές (...) λεπτομέρειες όπως την 
παράμετρο AUTO_INCREMENT στα πεδία σου. Αυτό όπως καταλαβαίνεις είναι πολύ 
κακό (tm) πράγμα, και ελπίζω να άκουσες την συμβουλή μου περι αντιγράφων 
ασφαλείας.

Μόνη λύση είναι να πάρεις το dump με --create-options ως εξής:

mysqldump --skip-opt --add-drop-table --add-locks --quick --extended-insert
--lock-tables --disable-keys --default-character-set=latin1 --create-options
--skip-set-charset  -u<username> -p<password> <databasename> > <filename>

μετά να κάνεις edit to dump, και να σβήσεις οποιαδήποτε παράμετρο έχει να 
κάνει με charset, ή να τα αλλάξεις στο σωστό, δηλαδή greek ή utf8.

Τέλος να κάνεις το σταυρό σου (αν είσαι θρήσκος) και να βάλεις το dump πίσω 
στην βάση.

Ελπίζω να βοήθησα.

-- 
moT

"There's the television. It's all right there. It's all
right there. Look. Listen. Kneel. Pray. Commercials."
                                           (12 Monkeys)




More information about the Linux-greek-users mailing list