Rumah >pangkalan data >tutorial mysql >Bagaimana untuk mengubah suai pengekodan aksara dalam mysql

Bagaimana untuk mengubah suai pengekodan aksara dalam mysql

PHPz
PHPzasal
2023-04-17 16:45:044175semak imbas

MySQL ialah sistem pengurusan pangkalan data hubungan yang popular. Apabila mencipta pangkalan data dan jadual, kami biasanya mentakrifkan set aksara dan pengekodan aksara untuknya. Jika pengekodan aksara pangkalan data dan jadual tidak konsisten, sebahagian atau semua data mungkin hilang. Oleh itu, adalah sangat penting untuk menetapkan pengekodan aksara dengan betul. Dalam artikel ini, saya akan menerangkan cara menukar pengekodan aksara pangkalan data atau jadual sedia ada dalam MySQL.

Lihat pengekodan aksara dalam MySQL

Sebelum mengubah suai pengekodan aksara, kita perlu terlebih dahulu memahami pengekodan aksara yang digunakan oleh pangkalan data atau jadual semasa. Ia boleh dilihat melalui pernyataan SQL berikut:

SHOW CREATE DATABASE database_name;
SHOW CREATE TABLE table_name;

di mana, database_name dan table_name mewakili pangkalan data dan nama jadual untuk dilihat masing-masing. Selepas melaksanakan arahan di atas, anda boleh melihat maklumat pengekodan aksara dalam keputusan.

Ubah suai pengekodan aksara pangkalan data

Secara amnya, kita tidak perlu mengubah suai pengekodan aksara pangkalan data. Jika anda benar-benar perlu mengubah suainya, anda boleh mengikuti langkah di bawah:

  1. Hentikan perkhidmatan MySQL.
sudo systemctl stop mysql
  1. Sandarkan data asal dan fail definisi pangkalan data.
mysqldump -u root -p --opt --default-character-set=utf8mb4 dbname > dbname_backup.sql
cp -a /var/lib/mysql /var/lib/mysql_backup

Di mana, dbname mewakili nama pangkalan data yang akan disandarkan.

  1. Ubah suai fail konfigurasi MySQL /etc/mysql/my.cnf.

Tambah kandungan berikut di bawah blok [mysqld]:

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

Jika item konfigurasi yang sepadan sudah wujud, cuma ubah suai nilai sepadannya secara langsung. Aksara daripada lebih banyak bahasa boleh disokong menggunakan utf8mb4 set aksara dan utf8mb4_unicode_ci penyusunan.

  1. Mulakan perkhidmatan MySQL dan ubah suai pengekodan aksara pangkalan data.
sudo systemctl start mysql
mysql -u root -p
ALTER DATABASE dbname CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

Di mana, dbname mewakili nama pangkalan data yang pengekodan aksaranya akan diubah suai.

Ubah suai pengekodan aksara jadual

Jika anda ingin mengubah suai pengekodan aksara dan peraturan pengisihan jadual, anda boleh mengikuti langkah di bawah:

  1. Sandarkan data asal dan dokumen definisi jadual.
mysqldump -u root -p --opt --default-character-set=utf8mb4 dbname tablename > tablename_backup.sql

Di mana, dbname dan tablename mewakili pangkalan data dan nama jadual yang akan disandarkan masing-masing.

  1. Ubah suai peraturan pengekodan dan pengisihan aksara jadual.
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Antaranya, table_name mewakili nama jadual pengekodan aksara yang akan diubah suai.

Selepas melaksanakan arahan di atas, MySQL akan menukar pengekodan dan penyusunan semua medan jenis aksara dalam jadual kepada utf8mb4 dan utf8mb4_unicode_ci.

Ubah suai pengekodan aksara medan

Jika anda hanya mahu mengubah suai pengekodan aksara medan dalam jadual, anda boleh mengikuti langkah di bawah:

  1. Sandarkan data tersebut.
mysqldump -u root -p --opt --default-character-set=utf8mb4 dbname tablename > tablename_backup.sql

Di mana, dbname dan tablename mewakili pangkalan data dan nama jadual yang akan disandarkan masing-masing.

  1. Ubah suai pengekodan aksara medan.
ALTER TABLE tablename MODIFY COLUMN column_name varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Di mana, tablename dan column_name masing-masing mewakili jadual dan nama medan yang pengekodan aksaranya akan diubah suai.

Selepas melaksanakan arahan di atas, MySQL akan menukar pengekodan aksara dan penyusunan medan kepada utf8mb4 dan utf8mb4_unicode_ci.

Ringkasan

Menetapkan pengekodan aksara dengan betul adalah sangat penting untuk penjimatan data dan pertanyaan. Dalam MySQL, kita boleh mengubah suai pengekodan aksara dan peraturan pengumpulan pangkalan data, jadual dan medan sedia ada melalui kaedah di atas. Perlu diingat bahawa sebelum melakukan operasi di atas, pastikan anda membuat sandaran data asal atau fail definisi pangkalan data untuk mengelakkan kehilangan data.

Atas ialah kandungan terperinci Bagaimana untuk mengubah suai pengekodan aksara dalam 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