π§ ΠΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ MySQL: ΠΏΡΠΎΡΡΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
ALTER DATABASE ΠΈΠΌΡ_Π±Π°Π·Ρ_Π΄Π°Π½Π½ΡΡ
CHARACTER SET Π½ΠΎΠ²Π°Ρ_ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°;
ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΈΠΌΡ_Π±Π°Π·Ρ_Π΄Π°Π½Π½ΡΡ
Π½Π° ΠΈΠΌΡ Π²Π°ΡΠ΅ΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
, Π° Π½ΠΎΠ²Π°Ρ_ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° Π½Π° ΠΆΠ΅Π»Π°Π΅ΠΌΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ Π½Π° UTF-8, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ:
ALTER DATABASE mydatabase CHARACTER SET utf8;
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ ΡΡΠΎΡ Π·Π°ΠΏΡΠΎΡ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
.
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ! ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡ Π΅ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ, Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ Π·Π°Π΄Π°Π²Π°ΡΡ.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ MySQL
ΠΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ Π² ΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΡΡΠ°ΡΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ MySQL! ΠΠ΄Π΅ΡΡ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΠΎΠ²Π΅ΡΡ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ Π²Π°ΡΠ΅ΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ MySQL.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ
ΠΠ΅ΡΠ²ΡΠΌ ΡΠ°Π³ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ Π²Π°ΡΠ΅ΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ MySQL. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ:
SHOW VARIABLES LIKE 'character_set_database';
ΠΡΠΎΡ Π·Π°ΠΏΡΠΎΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ Π²Π°ΠΌ ΡΠ΅ΠΊΡΡΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
Π§ΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π½Π° MySQL, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π³ΠΎΠ². ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ.
1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΠΠ΅ΡΠ²ΡΠΌ ΡΠ°Π³ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Ρ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΎΠΉ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ:
CREATE DATABASE `new_database` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ΠΠ΄Π΅ΡΡ `new_database` - ΡΡΠΎ ΠΈΠΌΡ Π²Π°ΡΠ΅ΠΉ Π½ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , `utf8mb4` - ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°, Π° `utf8mb4_unicode_ci` - ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΠΆΠ΅Π»Π°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΡΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
2. ΠΠΊΡΠΏΠΎΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΡΠ°ΡΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΡΠ°ΡΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ Π² Π½ΠΎΠ²ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈΠ»ΠΈΡΡ MySQL Dump Π΄Π»Ρ ΡΠΊΡΠΏΠΎΡΡΠ° Π΄Π°Π½Π½ΡΡ , Π° Π·Π°ΡΠ΅ΠΌ ΡΡΠΈΠ»ΠΈΡΡ MySQL Import Π΄Π»Ρ ΠΈΡ ΠΈΠΌΠΏΠΎΡΡΠ°. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄:
mysqldump -u username -p old_database > dump.sql
mysql -u username -p new_database < dump.sql
ΠΠ΄Π΅ΡΡ `username` - Π²Π°ΡΠ΅ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ MySQL, `old_database` - ΠΈΠΌΡ ΡΡΠ°ΡΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , `new_database` - ΠΈΠΌΡ Π½ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ `dump.sql` - ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° Π΄Π°ΠΌΠΏΠ°.
3. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ Π½ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΠΠΎΡΠ»Π΅ ΠΈΠΌΠΏΠΎΡΡΠ° Π΄Π°Π½Π½ΡΡ Π² Π½ΠΎΠ²ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ ΡΠ°ΠΌΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ:
ALTER DATABASE `new_database` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ΠΠ΄Π΅ΡΡ `new_database` - ΡΡΠΎ ΠΈΠΌΡ Π²Π°ΡΠ΅ΠΉ Π½ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , `utf8mb4` - ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°, Π° `utf8mb4_unicode_ci` - ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°.
4. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ°Π±Π»ΠΈΡ
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ Π² Π½ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ°Π±Π»ΠΈΡΡ `table_name`:
ALTER TABLE `table_name` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ΠΠ΄Π΅ΡΡ `table_name` - ΡΡΠΎ ΠΈΠΌΡ ΡΠ°Π±Π»ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ, `utf8mb4` - ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°, Π° `utf8mb4_unicode_ci` - ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ Π²Π°ΡΠ΅ΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ MySQL. ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΠ΅Π³Π΄Π° Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΠ΅ ΠΊΠΎΠΏΠΈΠΈ ΠΈ ΡΠ΅ΡΡΠΈΡΡΠΉΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΡ ΠΊ ΠΆΠΈΠ²ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ .
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠ° ΡΡΠ°ΡΡΡ Π±ΡΠ»Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ! Π£Π΄Π°ΡΠΈ Π²Π°ΠΌ Π² ΡΠ°Π±ΠΎΡΠ΅ Ρ MySQL!