Ini berbicara tentang perubahan yang telah terjadi sejak 8.0Salah satu poin yang telah terdaftar untuk Anda rujuk adalah ini:
Akibatnya, kumpulan karakter default dan susunan untuk objek baru berbeda dari sebelumnya kecuali kumpulan karakter eksplisit dan susunan ditentukan. Ini termasuk database dan objek di dalamnya, seperti tabel, tampilan, dan program yang disimpan.
Salah satu cara untuk mempertahankan default sebelumnya adalah memulai server dengan baris ini di my.cnf
berkas:
[mysqld]
character_set_server=latin1
collation_server=latin1_swedish_ci
Opsi lain, karena Anda menjalankan buruh pelabuhan, adalah menentukan opsi konfigurasi ini sebagai argumen baris perintah ke perintah menjalankan buruh pelabuhan. Misalnya:
docker run -d \
--network my-net \
-h mysqldb \
--name mysqldb \
-p 3306:3306 \
-e MYSQL_RANDOM_ROOT_PASSWORD=yes \
-e MYSQL_DATABASE=mydb \
-e MYSQL_USER=admin \
-e "MYSQL_PASSWORD=admin" \
mysql:8 --character-set-server=latin1 --collation-server=latin1_swedish_ci
Di klien, jika Anda ingin membuat perubahan - semoga ini cukup:
Untuk menggunakan set karakter UTF-8 4-byte dengan Connector/J, konfigurasikan server MySQL dengan character_set_server=utf8mb4
, dan tinggalkan characterEncoding
keluar dari string koneksi Connector/J.
Connector/J kemudian akan otomatis mendeteksi UTF-8
pengaturan
Semoga ini bisa membantu!