/ / Môže jeden server MySQL podporovať viac kódovaní? - mysql, kódovanie znakov

Môže jeden server MySQL podporovať viac kódov? - mysql, kódovanie znakov

Mám jednu databázu, z ktorej je potrebné skonvertovať latin_1 na utf8, Táto konverzia nie je problém a v mojich pracovných prostrediach všetko funguje správne, keď do riadku my.cnf pridám riadky (ako je uvedené v túto otázku SO):

[client]
default-character-set = utf8

[mysqld]
collation-server = utf8_unicode_ci
init-connect="SET NAMES utf8"
character-set-server = utf8

A spustite príslušné ALTER príkazy:

ALTER TABLE {row} CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Bohužiaľ táto databáza nesedí iba na serveri MySQL. Zdieľa server s niekoľkými databázami, ktoré stále používajú latin_1 kódovania a tieto databázy naozaj nemusia byť utf8, Môžem mať rôzne kódovania zdieľať ten istý server a musím na to zmeniť predvolenú konfiguráciu? Alebo to vyžaduje problémy?

odpovede:

3 pre odpoveď č. 1

Kódovanie skutočných údajov je založené na stĺpci, t.j. každý stĺpec v každej tabuľke môže mať odlišné kódovanie. Dáta sú transkódované za behu do / z kódovanie spojenia každý jednotlivý klient má; každý klient môže maťodlišné kódovanie pripojenia a každý klient môže nepretržite meniť kódovanie pripojenia. V konfiguračných súboroch nemusíte nič meniť; v skutočnosti by ste to nemali robiť, pretože to môže ovplyvniť správanie klientov, ktorí sa spoliehajú na predvolené hodnoty.

Stačí nastaviť vlastné nastavenia kódovania pre svojho klienta a vy ste v poriadku. Prečítajte si toto pre viac detailov.