ဆောင်းပါးလမ်းညွှန်
- 1 ဒေတာဘေ့စ်ထဲသို့ ထည့်သွင်းထားသော အီမိုဂျီအသုံးအနှုန်းသည် အဘယ်ကြောင့် မေးခွန်းအမှတ်အသား ဇာတ်ကောင်ဖြစ်လာသနည်း။
- 2 ဒေတာဘေ့စ်ထဲသို့ထည့်သွင်းထားသော အီမိုဂျီအသုံးအနှုန်းသည် မေးခွန်းအမှတ်အသား ဇာတ်ကောင်ဖြစ်လာသည့် ပြဿနာကို မည်သို့ဖြေရှင်းမည်နည်း။
- 3 MySQL Emoji ဇာတ်ကောင်ပြဿနာဖြေရှင်းချက်
- 4 utf8mb4 ဟုသတ်မှတ်ထားသောဒေတာဘေ့စ်ဇာတ်ကောင်ကိုမွမ်းမံနည်း။
အီမိုဂျီအသုံးအနှုန်းကို utf8 ကုဒ်ဖြင့် သိမ်းဆည်းထားပါကMySQL ဒေတာဘေ့စ်သို့မဟုတ် MariaDB၊ ၎င်းကိုပြသ၍မရပါ။
ဒေတာဘေ့စ်ထဲသို့ ထည့်သွင်းထားသော အီမိုဂျီအသုံးအနှုန်းသည် အဘယ်ကြောင့် မေးခွန်းအမှတ်အသား ဇာတ်ကောင်ဖြစ်လာသနည်း။
အီမိုဂျီအသုံးအနှုန်းများသည် 4-byte စာလုံးများဖြစ်ပြီး utf8 ဇာတ်ကောင်သတ်မှတ်မှုသည် စာလုံးများ၏ 1-3 bytes ကိုသာ ပံ့ပိုးပေးသောကြောင့် အီမိုဂျီအသုံးအနှုန်းများကို ဒေတာဘေ့စ်တွင် ရေးသား၍မရပါ။
ဒေတာဘေ့စ်ထဲသို့ထည့်သွင်းထားသော အီမိုဂျီအသုံးအနှုန်းသည် မေးခွန်းအမှတ်အသား ဇာတ်ကောင်ဖြစ်လာသည့် ပြဿနာကို မည်သို့ဖြေရှင်းမည်နည်း။
ဖြေရှင်းချက် 2 ခုရှိသည်။
- စိတ်ကြိုက်စာလုံးများဖြင့် လေးဘိုက်အက္ခရာများကို အစားထိုးပြီး စာသားကို ကိုယ်တိုင်ထည့်ပါ။
- ပြုပြင်သည် က MySQL ဒေတာဘေ့စ်အက္ခရာအစုံ၊ ဒေတာဘေ့စ်အက္ခရာအစုံကို utf8 မှ utf8mb4 သို့ပြောင်းပါ၊ 1-4 byte စာလုံးများကို ပံ့ပိုးပါ။
တကယ်တော့ ပထမနည်းလမ်းက အလုပ်အရမ်းများပြီး အကြံပြုလိုပါတယ်။
ဒုတိယဖြေရှင်းချက်ကိုအသုံးပြုရန် MySQL ဒေတာဘေ့စ်အက္ခရာအစုံကို ပြင်ဆင်ရန် အကြံပြုထားသည်။
MySQL 5.5.3 ဗားရှင်းမှ စတင်၍ ဒေတာဘေ့စ်သည် 4 bytes ၏ utf8mb4 ဇာတ်ကောင်အစုံကို ပံ့ပိုးနိုင်ပြီး ဇာတ်ကောင်တစ်ခုတွင် 4 bytes အထိ ရှိနိုင်သောကြောင့် ၎င်းသည် ဇာတ်ကောင်အစုံများကို ပံ့ပိုးပေးနိုင်သည့်အပြင် အီမိုဂျီအသုံးအနှုန်းများကိုလည်း သိမ်းဆည်းနိုင်သည်။
- MySQL 5.5.3 ပြီးနောက်၊ သင်သည် အခြေခံအားဖြင့် utf8mb4 ဇာတ်ကောင်အစုံသို့ ချောမွေ့စွာ အဆင့်မြှင့်နိုင်သည်။
- တစ်ချိန်တည်းမှာပင်၊ utf8mb4 သည် utf8 ဇာတ်ကောင်အစုံနှင့် လိုက်ဖက်ပါသည်။
- utf8 စာလုံးများ၏ ကုဒ်သွင်းမှု၊ အနေအထားနှင့် သိုလှောင်မှုသည် utf8mb4 တွင်ဖြစ်သည်။
- utf8 ဇာတ်ကောင်သတ်မှတ်ထားသလိုပါပဲ၊ ရှိပြီးသားဒေတာကို ထိခိုက်မှုမရှိပါ။
ကြောင့်phpMyAdmin ကအသစ်ဖန်တီးထားသောဒေတာဘေ့စ်တစ်ခုရှိ အသစ်ဖန်တီးထားသောဇယားများအတွက်၊ ပုံသေဇာတ်ကောင်အသွင်ဝှက်ခြင်းမှာ-Latin1
- ဤကုဒ်နံပါတ်သည် တရုတ်နှင့် အီမိုဂျီအသုံးအနှုန်းများကို ထည့်သွင်း၍မရပါ။
- database character set နှင့် table ၏ character set encoding ကို utf8mb4 သို့ ပြောင်းလဲရန်လိုအပ်ပါသည်။
- ထို့နောက် MySQL ကို ပြန်လည်စတင်ပါ၊ သင်သည် တရုတ်နှင့် အီမိုဂျီအသုံးအနှုန်းများကို ထည့်သွင်းနိုင်သည်။
MySQL Emoji ဇာတ်ကောင်ပြဿနာဖြေရှင်းချက်
第1步:MySQL configuration file my.cnf ကို ပြင်ဆင်ပါ။
- (Windows server သည် my.ini၊Linux ကိုဆာဗာသည် my.cnf)
- my.cnf ဖိုင်တွင် အများအားဖြင့်၊
/etc/mysql/my.cnf
位置။ - CWP Control Panelmy.cnf ဖိုင်၊ တွင်ရှိသည်။
/etc/my.cnf
位置။
၎င်းကိုရှာဖွေပြီးနောက်၊ အောက်ပါအကြောင်းအရာကို အောက်ပါသုံးပိုင်း ▼ တွင်ထည့်ပါ။
[client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4'
第2步:MySQL ဒေတာဘေ့စ်ကို ပြန်လည်စတင်ပါ။
service mysqld restart
အဆင့် 3- သတ်မှတ်ဇာတ်ကောင်ကို ထပ်မံစစ်ဆေးပြီး SQL command line တွင် ▼ ရိုက်ထည့်ပါ။
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';
▼ အောက်ပါတို့ရှိမရှိ စစ်ဆေးပါ။
အောက်ပါ SQL command▼ ကိုရိုက်ထည့်ပါ။
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
▼ အောက်ပါအတိုင်းဖြစ်မဖြစ် စစ်ဆေးပါ။
+--------------------------+--------------------+ | Variable_name | Value | +--------------------------+--------------------+ | character_set_client | utf8mb4 | | character_set_connection | utf8mb4 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | utf8mb4 | | character_set_server | utf8mb4 | | character_set_system | utf8 | | collation_connection | utf8mb4_unicode_ci | | collation_database | utf8mb4_unicode_ci | | collation_server | utf8mb4_unicode_ci | +--------------------------+--------------------+
phpMyAdmin တွင် ဒေတာဘေ့စ်အသစ်တစ်ခု ဖန်တီးပြီးနောက်၊ သင်သည် လိုအပ်သည်။ဒေတာဘေ့စ်ကုဒ်ကိုကြည့်ပါ ▼
SHOW CREATE DATABASE db_name;
- like:
SHOW CREATE DATABASE test;
ဒေတာဘေ့စကုဒ်ကုဒ်မဟုတ်ရင်utf8mb4
၊ သင်သတ်မှတ်ထားသည့် ဒေတာဘေ့စ်အက္ခရာကို ပြင်ဆင်ရပါမည်။utf8mb4
။
utf8mb4 ဟုသတ်မှတ်ထားသောဒေတာဘေ့စ်ဇာတ်ကောင်ကိုမွမ်းမံနည်း။
အဆင့် 1- phpMyAdmin တွင် လက်ရှိဒေတာဘေ့စ်အမည်ကို နှိပ်ပါ၊ ထို့နောက် SQL ကိုနှိပ်ပါ။
အဆင့် 2- သတ်မှတ်ထားသော ဒေတာဘေ့စ် ဇာတ်ကောင်ကို မွမ်းမံရန် အောက်ပါ command ကို ရိုက်ထည့်ပါ။utf8mb4
▼
ALTER DATABASE db_name DEFAULT CHARACTER SET utf8mb4
- like:
ALTER DATABASE test DEFAULT CHARACTER SET utf8mb4;
第3步:MySQL ဒေတာဘေ့စ်ကို ပြန်လည်စတင်ပါ။
service mysqld restart
- ဒါပဲ။
ဤသည်မှာ SQL commands များ၏ ဥပမာအချို့ဖြစ်သည်။
မူရင်းဇာတ်ကောင်သတ်မှတ်မှုနှင့် ဇယား၏ဇာတ်ကောင်ကော်လံအားလုံးကို စာလုံးအသစ်သတ်မှတ်ခြင်း ▼ ပြောင်းပါ။
ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
- like:
ALTER TABLE logtest CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
အကယ်၍ သင်သည် ဇယား၏ ပုံသေဇာတ်ကောင်အစုံကိုသာ ပြင်ဆင်မည်ဆိုပါက ▼
ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
- like:
ALTER TABLE logtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
▼ အကွက်တစ်ခု၏ ဇာတ်ကောင်အစုံကို မွမ်းမံပါ။
ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name
- like:
ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;
ဇယားကုဒ် ▼ ကြည့်ပါ။
SHOW CREATE TABLE tbl_name;
အကွက်ကုဒ်များ ▼ ကြည့်ပါ။
SHOW FULL COLUMNS FROM tbl_name;
လက်ရှိဒေတာဘေ့စ်ကုဒ်ကိုကြည့်ပါ ▼
SHOW VARIABLES LIKE 'character_set_%';
- mysql-connector-java driver package သည် 5.1.13+ တွင် utf8mb4 ကိုသာ ပံ့ပိုးပေးသည်
မျှော်လင့်ခြင်း Chen Weiliang ဘလော့ဂ် ( https://www.chenweiliang.com/ ) မျှဝေထားသည့် "အီမိုဂျီများကို MySQL တွင် မည်ကဲ့သို့ သိမ်းဆည်းရမည်နည်း။ ဒေတာဘေ့စ် အီမိုဂျီ စကားအသုံးအနှုန်း မေးခွန်း အမှတ်အသား ပြဿနာ" ကို သင့်အတွက် အထောက်အကူဖြစ်စေသည်။
ဤဆောင်းပါး၏ link ကိုမျှဝေရန်ကြိုဆိုပါတယ်:https://www.chenweiliang.com/cwl-26592.html
နောက်ဆုံးထွက်မွမ်းမံမှုများကို ရယူရန် Chen Weiliang ၏ တယ်လီဂရမ်ချန်နယ်မှ ကြိုဆိုပါသည်။
📚 ဤလမ်းညွှန်တွင် တန်ဖိုးကြီးကြီးမားမားပါရှိသည်၊ 🌟ဒါက ရှားပါးအခွင့်အရေးပါ၊ လက်လွတ်မခံပါနဲ့။ ⏰⌛💨
ကြိုက်ရင် Share ပြီး Like လုပ်ပါ။
သင်၏မျှဝေခြင်းနှင့် လိုက်ခ်များသည် ကျွန်ုပ်တို့၏ စဉ်ဆက်မပြတ်လှုံ့ဆော်မှုဖြစ်သည်။