mysql menukar pengekodan pangkalan data

王林
Lepaskan: 2023-05-23 12:50:37
asal
1485 orang telah melayarinya

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
Salin selepas log masuk

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%';
Salin selepas log masuk

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/ |
+--------------------------+----------------------------+
Salin selepas log masuk

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;
Salin selepas log masuk

Anda boleh menggunakan arahan berikut untuk mengesahkan sama ada pengekodan pangkalan data telah berjaya diubah suai.

SHOW CREATE DATABASE mydb;
Salin selepas log masuk

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;
Salin selepas log masuk

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;
...
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan