MySQL ialah sistem pengurusan pangkalan data hubungan yang digunakan secara meluas yang menyokong pengekodan berbilang aksara, termasuk UTF-8, GBK, dsb. Dalam aplikasi praktikal, kita selalunya perlu mengubah suai pengekodan aksara MySQL untuk memenuhi keperluan sebenar Artikel ini akan memperkenalkan cara mengubah suai pengekodan aksara MySQL.
- Tentukan pengekodan aksara semasa
Sebelum mengubah suai pengekodan aksara MySQL, kita perlu menentukan pengekodan aksara semasa. Anda boleh menanyakan pengekodan aksara semasa melalui arahan berikut:
show variables like 'character_set_database';
Salin selepas log masuk
Salin selepas log masuk
Jika hasil output ialah UTF-8, maka pengekodan aksara semasa ialah UTF-8. Jika hasil output ialah GBK, pengekodan aksara semasa ialah GBK.
- Hentikan perkhidmatan MySQL
Sebelum mengubah suai pengekodan aksara MySQL, anda perlu menghentikan perkhidmatan MySQL. Anda boleh menghentikan perkhidmatan MySQL melalui arahan berikut:
sudo service mysql stop
Salin selepas log masuk
- Ubah suai fail konfigurasi MySQL
Fail konfigurasi MySQL terletak di /etc/mysql/mysql.conf .d/mysqld. Buka fail dengan editor dan cari dua baris berikut:
collation-server = utf8_general_ci
character-set-server = utf8
Salin selepas log masuk
Ubah suainya kepada:
collation-server = utf8mb4_unicode_ci
character-set-server = utf8mb4
Salin selepas log masuk
Apa yang diubah suai di sini ialah pengekodan kepada UTF-8 Ambil perhatian bahawa situasi berbeza mungkin memerlukan pengubahsuaian pengekodan.
- Mulakan semula perkhidmatan MySQL
Mulakan semula perkhidmatan MySQL, yang boleh dicapai melalui arahan berikut:
sudo service mysql start
Salin selepas log masuk
- Ubah suai pangkalan data yang dibuat dan jadual Selepas set aksara MySQL diubah suai, set aksara pangkalan data dan jadual yang dibuat sebelum ini tidak diubah suai secara automatik. Kita perlu mengubah suai set aksara pangkalan data dan jadual yang dibuat secara manual.
Gunakan arahan berikut untuk mengubah suai set aksara pangkalan data:
ALTER DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Salin selepas log masuk
Antaranya, dbname mewakili nama pangkalan data yang akan diubah suai, utf8mb4 mewakili set aksara dan utf8mb4_unicode_ci mewakili pengumpulan.
Gunakan arahan berikut untuk mengubah suai set aksara jadual:
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Salin selepas log masuk
Antaranya, nama jadual mewakili nama jadual yang akan diubah suai, utf8mb4 mewakili set aksara dan utf8mb4_unicode_ci mewakili pengumpulan.
Perlu diambil perhatian bahawa anda perlu membuat sandaran data yang berkaitan sebelum melaksanakan arahan di atas untuk mengelakkan kehilangan data.
Ubah suai set aksara semasa menyambung
- Apabila menyambung ke MySQL, anda perlu menentukan set aksara yang digunakan semasa menyambung. Anda boleh menentukan set aksara apabila menyambung melalui arahan berikut:
mysql -u username -p --default-character-set=utf8mb4 dbname
Salin selepas log masuk
di mana nama pengguna mewakili nama pengguna, dbname mewakili nama pangkalan data yang akan disambungkan dan utf8mb4 mewakili set aksara.
Sahkan set aksara
- Akhir sekali, kami boleh mengesahkan sama ada pengubahsuaian set aksara berjaya dengan menggunakan arahan berikut:
show variables like 'character_set_database';
Salin selepas log masuk
Salin selepas log masuk
Jika hasil output adalah konsisten dengan aksara yang diubah suai Jika kod adalah konsisten, pengubahsuaian berjaya. RingkasanTerdapat banyak perkara yang perlu diberi perhatian semasa mengubah suai pengekodan aksara MySQL Anda perlu memberi perhatian untuk membuat sandaran data yang berkaitan untuk mengelakkan kehilangan data. Berhati-hati semasa beroperasi, terutamanya apabila mengubah suai pangkalan data dan jadual yang dicipta. Adalah disyorkan untuk mencubanya dalam persekitaran ujian dahulu apabila membuat pengubahsuaian untuk memastikan ia tidak akan menjejaskan persekitaran rasmi. Atas ialah kandungan terperinci Ubah suai pengekodan aksara mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!