


Menganalisis dan menyelesaikan masalah kod mysql bercelaru dalam docker
Docker ialah platform kontena popular yang menjadikan penggunaan dan pengurusan aplikasi lebih mudah dan cekap. Pangkalan data MySQL adalah sebahagian daripada banyak aplikasi. Walau bagaimanapun, apabila menggunakan MySQL dalam Docker, anda kadangkala menghadapi aksara yang bercelaru, yang bukan sahaja menjejaskan ketepatan data, tetapi juga membawa masalah yang tidak perlu kepada pembangun.
Artikel ini akan memperkenalkan masalah rumit MySQL dalam Docker dan kemungkinan penyelesaian.
1. Masalah kod bercelaru MySQL dalam Docker
Kod bercelaru bermakna data yang ditanya pada klien tidak memenuhi jangkaan dan terdapat beberapa aksara atau gelagat yang tidak dapat dikenali.
Masalah ini sangat biasa apabila menjalankan MySQL dalam Docker. Terutama apabila kaedah pengekodan pangkalan data MySQL ditetapkan kepada UTF-8, situasi berikut mungkin berlaku:
1 Apabila memasukkan data, aksara Cina atau bahasa lain yang biasa bagi data menjadi beberapa aksara rawak.
2. Apabila pelanggan menanyakan data, data yang dikembalikan mengandungi sejumlah besar aksara yang bercelaru.
Sebenarnya, masalah ini bukan disebabkan oleh Docker atau MySQL sendiri, tetapi disebabkan beberapa tetapan dan konfigurasi yang salah.
2. Penyelesaian kepada MySQL dalam Docker
1. Semak set aksara sumber data
Punca aksara bercelaru adalah kerana set aksara pangkalan data tidak konsisten dengan set aksara sumber data. Kami perlu mengesahkan sama ada set aksara sumber data ialah UTF-8 untuk memastikan ketepatan penghantaran data antara sistem yang berbeza.
Semak set aksara lalai MySQL dalam MySQL melalui arahan berikut:
show variables like 'character%';
set_pelanggan_karakter, set_karakter_sambungan dan set_huruf_hasil dalam hasil yang dipaparkan mestilah utf8mb4. Jika tidak, ia boleh menyebabkan masalah soalan.
Untuk menjalankan MySQL dalam Docker, anda perlu menambah parameter berikut pada fail konfigurasi Dockerfile atau Docker-compose:
... environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: test MYSQL_USER: test MYSQL_PASSWORD: test MYSQL_CHARSET: utf8mb4 MYSQL_COLLATION: utf8mb4_unicode_ci ...
Antaranya, MYSQL_CHARSET dan MYSQL_COLLATION ialah set aksara dan pengisihan kaedah masing-masing.
2. Ubah suai fail konfigurasi MySQL
Apabila menjalankan MySQL dalam Docker, anda juga boleh mengubah suai fail konfigurasi MySQL untuk mencapai set aksara dan kaedah pengisihan yang betul.
Masukkan fail konfigurasi MySQL my.cnf dan tambahkan konfigurasi berikut di bahagian bawah:
[mysql] default-character-set=utf8mb4 [mysqld] collation-server = utf8mb4_unicode_ci init-connect='SET NAMES utf8mb4' character-set-server = utf8mb4 skip-character-set-client-handshake
Untuk menjalankan MySQL dalam Docker, anda perlu menyalin my.cnf ke bekas terlebih dahulu:
... volumes: - ./my.cnf:/etc/mysql/conf.d/my.cnf ...
3. Semak set aksara klien MySQL
Apabila menjalankan MySQL dalam Docker, anda perlu memastikan set aksara klien (seperti sistem pengendalian dan alatan klien MySQL , dsb.) juga merupakan UTF-8.
Di Linux, anda boleh melihat set aksara sistem semasa melalui arahan berikut:
$ echo $LANG
Jika LANG mengembalikan set aksara lain, anda perlu menambah persekitaran LANG pada shell anda fail konfigurasi Pembolehubah:
$ echo "export LANG='en_US.utf8'" >> ~/.bashrc
Dalam sistem Windows, anda perlu memastikan set aksara alat klien (seperti Navicat, dll.) juga adalah UTF-8.
4. Tetapkan atribut lajur MySQL
Dalam MySQL, set aksara dan peraturan penyusunan dalam atribut lajur juga akan mempengaruhi ketepatan hasil pertanyaan. Secara lalai, sifat lajur jadual MySQL baharu menggunakan tetapan lalai pelayan MySQL. Jika set aksara dan pengumpulan pelayan MySQL tidak sepadan, aksara bercelaru mungkin terhasil.
Untuk menyelesaikan masalah ini, anda boleh menetapkan atribut lajur secara manual kepada:
CREATE TABLE test ( name VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', ... );
Apabila mencipta jadual, perkara di atas adalah beberapa penyelesaian kepada masalah MySQL yang bercelaru dalam Docker. Pembangun boleh memilih kaedah yang sesuai dengan mereka mengikut keperluan dan keadaan sebenar mereka sendiri. Dalam persekitaran pengeluaran, untuk memastikan kestabilan dan kebolehpercayaan sistem, penggunaan dan konfigurasi aplikasi perlu diuji dan disahkan dengan teliti.
Atas ialah kandungan terperinci Menganalisis dan menyelesaikan masalah kod mysql bercelaru dalam docker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Butiran artikel yang menggerakkan aplikasi ke docker swarm, meliputi penyediaan, langkah penempatan, dan langkah -langkah keselamatan semasa proses.

Artikel ini menerangkan pod, penyebaran, dan perkhidmatan Kubernetes, memperincikan peranan mereka dalam menguruskan aplikasi kontena. Ia membincangkan bagaimana komponen ini meningkatkan skalabiliti, kestabilan, dan komunikasi dalam aplikasi. (159 aksara)

Artikel ini membincangkan aplikasi penskalaan di Kubernet menggunakan skala manual, HPA, VPA, dan AutoScaler kluster, dan menyediakan amalan dan alat terbaik untuk pemantauan dan mengautomasikan skala.

Artikel ini membincangkan pelaksanaan kemas kini rolling di Swarm Docker untuk mengemas kini perkhidmatan tanpa downtime. Ia meliputi perkhidmatan mengemas kini, menetapkan parameter kemas kini, memantau kemajuan, dan memastikan kemas kini yang lancar.

Artikel membincangkan pengurusan perkhidmatan dalam Swarm Docker, memberi tumpuan kepada penciptaan, skala, pemantauan, dan mengemas kini tanpa downtime.

Artikel ini membincangkan pengurusan penyebaran Kubernet, memberi tumpuan kepada penciptaan, kemas kini, skala, pemantauan, dan automasi menggunakan pelbagai alat dan amalan terbaik.

Artikel membincangkan membuat dan menguruskan kluster docker swarm, termasuk persediaan, perkhidmatan skala, dan amalan terbaik keselamatan.

Docker adalah kemahiran yang mesti ada untuk jurutera DevOps. 1.Docker adalah platform kontena sumber terbuka yang mencapai pengasingan dan mudah alih dengan aplikasi pembungkusan dan kebergantungan mereka ke dalam bekas. 2. Docker bekerja dengan ruang nama, kumpulan kawalan dan sistem fail bersekutu. 3. Penggunaan asas termasuk mencipta, menjalankan dan menguruskan bekas. 4. Penggunaan lanjutan termasuk menggunakan DockerCompose untuk menguruskan aplikasi multi-kontainer. 5. Kesilapan umum termasuk kegagalan kontena, masalah pemetaan pelabuhan, dan masalah ketekunan data. Kemahiran penyahpepijatan termasuk log melihat, memasukkan bekas, dan melihat maklumat terperinci. 6. Pengoptimuman prestasi dan amalan terbaik termasuk pengoptimuman imej, kekangan sumber, pengoptimuman rangkaian dan amalan terbaik untuk menggunakan Dockerfile.
