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

Ubah suai pengekodan pangkalan data mysql

WBOY
WBOYasal
2023-05-20 09:49:071493semak imbas

MySQL ialah sistem pengurusan pangkalan data sumber terbuka yang digunakan secara meluas dalam pelbagai tapak web, gudang data dan aplikasi perusahaan. Dalam MySQL, format pengekodan merujuk kepada kaedah penyimpanan binari dalaman kandungan teks yang disimpan dalam pangkalan data.

Jika pangkalan data anda menyimpan aksara khas, seperti aksara Cina atau aksara bukan Inggeris yang lain, anda perlu menetapkan format pengekodan yang betul untuk memastikan aksara ini boleh disimpan dan diambil dengan betul. Artikel ini akan memperkenalkan cara mengubah suai format pengekodan pangkalan data MySQL.

Langkah 1: Sandarkan pangkalan data

Sebelum melakukan sebarang perubahan pangkalan data, pastikan anda membuat sandaran pangkalan data untuk mengelakkan kehilangan data atau kerosakan yang tidak dapat dipulihkan. Anda boleh menggunakan alat mysqldump yang disediakan oleh MySQL untuk membuat sandaran pangkalan data Perintahnya adalah seperti berikut:

mysqldump -u [username] -p [database_name] > backup.sql

di mana [nama pengguna] ialah nama pengguna pangkalan data, [nama_database] ialah nama pangkalan data kepada. disandarkan, > bermaksud mengubah hala kandungan sandaran ke fail backup.sql.

Langkah 2: Lihat pengekodan pangkalan data

Untuk melihat pengekodan lalai dalam pangkalan data MySQL semasa, anda boleh menjalankan arahan berikut:

SELECT @@character_set_database;

Arahan ini akan memaparkan semasa pengekodan lalai bagi Format pangkalan data.

Langkah 3: Ubah suai pengekodan pangkalan data

Untuk mengubah suai pengekodan pangkalan data, anda perlu melakukan langkah berikut:

  1. Cari fail konfigurasi MySQL (biasanya / etc/my.cnf) dan bukanya. Jika anda tidak menemui fail, anda boleh menjalankan arahan berikut dalam terminal untuk mencarinya:
find / -name my.cnf
  1. Tambah baris berikut dalam fail konfigurasi:
[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

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

Tetapan ini Pastikan semua klien dan pelayan MySQL menggunakan format pengekodan yang betul.

  1. Simpan dan tutup fail konfigurasi.
  2. Mulakan semula pelayan MySQL untuk perubahan berkuat kuasa:
sudo service mysql restart
  1. Jalankan arahan berikut untuk menyemak sama ada tetapan telah berjaya digunakan:
SELECT @@character_set_database;

Jika digunakan dengan betul, output hendaklah berbunyi "utf8mb4".

Langkah 4: Tukar jadual sedia ada kepada pengekodan baharu

Jika jadual sudah wujud dalam pangkalan data, ia perlu ditukar kepada format pengekodan baharu untuk menyimpan data dengan betul.

  1. Jalankan arahan berikut untuk menjana pernyataan SQL bagi semua jadual yang perlu dinaik taraf:
SELECT CONCAT('ALTER TABLE `', table_schema, '`.`', table_name, '` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;') AS execute_sql
FROM information_schema.tables
WHERE table_schema = '[database_name]' AND table_type = 'BASE TABLE'
ORDER BY table_name DESC;

Di mana [database_name] ialah nama pangkalan data yang perlu ditukarkan.

  1. Salin keputusan ke dalam terminal dan jalankan untuk menukar semua jadual kepada pengekodan baharu. Seperti yang ditunjukkan di bawah:
ALTER TABLE `table1` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE `table2` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
...

Langkah 5: Uji perubahan

Selepas menukar semua jadual, anda perlu menguji sama ada perubahan itu berjaya. Jalankan arahan berikut untuk memastikan format pengekodan semua jadual telah dikemas kini:

SHOW FULL COLUMNS FROM [table_name];

di mana [nama_jadual] ialah nama jadual untuk diuji. Perintah ini akan memaparkan lajur dan metadata jadual, serta melihat sama ada sebarang data dalam format pengekodan lama wujud dalam jadual. Jika keputusan kelihatan betul, perubahan itu berjaya.

Kesimpulan

Mengubah suai format pengekodan pangkalan data dalam MySQL boleh memastikan aksara khas boleh disimpan dan diambil dengan betul, memberikan sokongan sempurna untuk tapak web dan aplikasi berbilang bahasa. Dengan mengikuti langkah-langkah yang disediakan dalam artikel ini, anda akan dapat dengan mudah mengubah suai format pengekodan pangkalan data MySQL anda dan mengelakkan kehilangan data atau rasuah.

Atas ialah kandungan terperinci Ubah suai pengekodan pangkalan data 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:mysql terlupa kata laluan macArtikel seterusnya:mysql terlupa kata laluan mac