Rumah  >  Artikel  >  pangkalan data  >  Ubah suai pengekodan aksara mysql

Ubah suai pengekodan aksara mysql

WBOY
WBOYasal
2023-05-14 12:00:37811semak imbas

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.

  1. 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';

Jika hasil output ialah UTF-8, maka pengekodan aksara semasa ialah UTF-8. Jika hasil output ialah GBK, pengekodan aksara semasa ialah GBK.

  1. 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
  1. 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

Ubah suainya kepada:

collation-server = utf8mb4_unicode_ci
character-set-server = utf8mb4

Apa yang diubah suai di sini ialah pengekodan kepada UTF-8 Ambil perhatian bahawa situasi berbeza mungkin memerlukan pengubahsuaian pengekodan.

  1. Mulakan semula perkhidmatan MySQL

Mulakan semula perkhidmatan MySQL, yang boleh dicapai melalui arahan berikut:

sudo service mysql start
  1. 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;

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;

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

  1. Apabila menyambung ke MySQL, anda perlu menentukan set aksara yang digunakan semasa menyambung. Anda boleh menentukan set aksara apabila menyambung melalui arahan berikut:
  2. mysql -u username -p --default-character-set=utf8mb4 dbname
di mana nama pengguna mewakili nama pengguna, dbname mewakili nama pangkalan data yang akan disambungkan dan utf8mb4 mewakili set aksara.

Sahkan set aksara

  1. Akhir sekali, kami boleh mengesahkan sama ada pengubahsuaian set aksara berjaya dengan menggunakan arahan berikut:
  2. show variables like 'character_set_database';
Jika hasil output adalah konsisten dengan aksara yang diubah suai Jika kod adalah konsisten, pengubahsuaian berjaya.

Ringkasan

Terdapat 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:proses pertanyaan mysqlArtikel seterusnya:proses pertanyaan mysql