Konwertuję stronę internetową z ISO na UTF-8, więc potrzebuję również konwertować bazę danych MySQL.Konwersja bazy danych MySQL z łaciny na UTF-8
W Internecie czytam różne rozwiązania, nie wiem, który wybrać.
Czy naprawdę trzeba konwertować moje kolumny varchar do binarny, a następnie na UTF-8 tak:
ALTER TABLE t MODIFY col BINARY(150);
ALTER TABLE t MODIFY col CHAR(150) CHARACTER SET utf8;
To zajmuje dużo czasu, aby to zrobić dla każdej kolumny, z każdej tabeli, z każdej bazy danych .
Mam 10 baz danych, z 20 tabelami każda, z około 2 - 3 kolumnami varchar (2 zapytania każda kolumna), to daje mi około 1000 zapytań do napisania! Jak to zrobić?
Rozwiązane: mogę napisać kod, który użyłem:
PASSWORD=""
db=$1
mysqldump --password=$PASSWORD --set-charset --skip-set-charset --add-drop-table --databases "$db" > /home/dev/backup/bdd.sql
QUERY="ALTER DATABASE \`$db\` DEFAULT CHARACTER SET utf8;"
mysql --password=$PASSWORD --database "$db" -e "$QUERY"
mysql --password=$PASSWORD --default-character-set=utf8 < /home/dev/backup/bdd.sql
zobaczyć odpowiedź poniżej, aby uzyskać więcej informacji.
nie są '--set-charset' i' --skip-set-charset' bezpośrednio konkurujących flagi? Dokumenty mówią, że wpływają na użycie 'SET NAMES', ale nie ustawiają parametru' DEFAULT CHARSET = X', który jest wyprowadzany przez 'mysqldump' na tabelę. (mysql 5.5) – fideloper