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.
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.
Secara amnya, kita tidak perlu mengubah suai pengekodan aksara pangkalan data. Jika anda benar-benar perlu mengubah suainya, anda boleh mengikuti langkah di bawah:
sudo systemctl stop mysql
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.
/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.
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.
Jika anda ingin mengubah suai pengekodan aksara dan peraturan pengisihan jadual, anda boleh mengikuti langkah di bawah:
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.
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
.
Jika anda hanya mahu mengubah suai pengekodan aksara medan dalam jadual, anda boleh mengikuti langkah di bawah:
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.
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
.
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!