MySQL ialah sistem pengurusan pangkalan data hubungan popular yang boleh digunakan untuk tapak web peribadi dan perniagaan kecil, serta aplikasi besar dan perisian peringkat perusahaan. MySQL menggunakan pengekodan UTF-8 secara lalai untuk menyokong storan data berbilang bahasa, tetapi kadangkala anda menghadapi masalah pengekodan pangkalan data, seperti aksara bercelaru atau ketidakupayaan untuk memaparkan aksara Cina dengan betul. Pada masa ini, anda perlu mengubah suai pengekodan pangkalan data MySQL untuk menyelesaikan masalah ini.
Artikel ini akan memperkenalkan cara mengubah suai pengekodan pangkalan data MySQL. Pertama, kita perlu memahami konsep set aksara MySQL dan pengekodan. Set aksara dalam MySQL merujuk kepada set aksara yang mewakili aksara dan teks dalam pangkalan data, seperti utf8, gbk, dsb. Pengekodan merujuk kepada cara set aksara ini digunakan untuk penyimpanan dan penghantaran pada komputer.
Langkah 1: Sandarkan pangkalan data
Pastikan anda membuat sandaran pangkalan data sebelum membuat sebarang pengubahsuaian untuk mengelakkan kehilangan data secara tidak sengaja. Anda boleh menggunakan arahan mysqldump untuk menyandarkan keseluruhan pangkalan data kepada fail SQL, seperti yang ditunjukkan di bawah:
mysqldump -u username -p dbname > backup.sql
di mana nama pengguna ialah nama pengguna MySQL, dbname ialah nama pangkalan data yang akan disandarkan dan sandaran .sql ialah nama fail sandaran.
Selepas sandaran selesai, anda boleh terus mengubah suai pengekodan MySQL.
Langkah 2: Semak pengekodan pangkalan data
Gunakan arahan berikut untuk menyemak set aksara dan pengekodan pangkalan data semasa:
SHOW VARIABLES LIKE '%character%';
Hasilnya adalah seperti berikut:
+--------------------------+----------------------------+ | 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 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+
Anda boleh menyemaknya di sini Seperti yang anda lihat, set aksara dan pengekodan pangkalan data semasa adalah utf8mb4. Jika anda ingin menukarnya kepada gbk atau pengekodan lain, anda perlu meneruskan ke langkah seterusnya.
Langkah 3: Ubah suai pengekodan pangkalan data
Pertama, anda perlu mengesahkan nama pangkalan data untuk diubah suai. Katakan anda ingin menukar pengekodan pangkalan data mydb kepada gbk, anda boleh menggunakan arahan berikut:
ALTER DATABASE mydb CHARACTER SET gbk;
Anda boleh menggunakan arahan berikut untuk mengesahkan sama ada pengekodan pangkalan data telah berjaya diubah suai.
SHOW CREATE DATABASE mydb;
Di mana, mydb ialah nama pangkalan data yang akan diubah suai. Jika anda melihat "SET CHARACTER DEFAULT gbk" dalam hasil output, ini bermakna pengekodan pangkalan data telah berjaya diubah suai.
Jika sudah ada jadual data dalam pangkalan data, set aksara dan pengekodannya juga perlu diubah suai kepada pengekodan sasaran baharu. Anda boleh menggunakan arahan berikut untuk mengubah suai jadual data tunggal:
ALTER TABLE mytable CONVERT TO CHARACTER SET gbk;
di mana, mytable ialah nama jadual data yang akan diubah suai dan gbk ialah pengekodan sasaran.
Jika anda perlu mengubah suai pengekodan berbilang jadual data pada masa yang sama, anda boleh menggunakan arahan berikut untuk mengubah suai dalam kelompok:
ALTER DATABASE mydb CHARACTER SET gbk; ALTER TABLE mytable1 CONVERT TO CHARACTER SET gbk; ALTER TABLE mytable2 CONVERT TO CHARACTER SET gbk; ...
Perlu diingat bahawa mengubah suai pengekodan jadual data akan menukar pengekodan semua lajur dalam jadual data Set aksara dan pengekodan, ini bermakna data asal dalam jadual data akan ditimpa, jadi pastikan anda membuat sandaran data sebelum melakukan pengubahsuaian. Selain itu, jika anda ingin menanyakan jadual data ini, anda juga perlu menggunakan pengekodan yang sepadan dengan set aksara dan pengekodannya.
Langkah 4: Mulakan Semula MySQL
Selepas mengubah suai set aksara dan pengekodan jadual data, anda perlu memulakan semula perkhidmatan MySQL untuk memastikan pengubahsuaian pangkalan data telah berkuat kuasa. Anda boleh menggunakan arahan berikut untuk memulakan semula pelayan MySQL:
sudo systemctl restart mysql
Anda perlu memasukkan kata laluan pengguna root untuk melaksanakan arahan ini.
Ringkasan
Mengubah suai pengekodan pangkalan data MySQL boleh menyelesaikan masalah yang berkaitan dengan set aksara dan pengekodan. Proses ini boleh diselesaikan dengan membuat sandaran data, menyemak set aksara dan pengekodan, mengubah suai pengekodan pangkalan data, dan memulakan semula MySQL. Perlu diingatkan bahawa mengubah suai pengekodan pangkalan data akan menjejaskan semua jadual data sedia ada dalam pangkalan data, jadi pastikan anda membuat sandaran data sebelum beroperasi.
Atas ialah kandungan terperinci mysql menukar pengekodan pangkalan data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!