Điều này nói về những thay đổi đã xảy ra kể từ 8.0Một trong những điểm đã được liệt kê để bạn tham khảo là:
Kết quả là, bộ ký tự mặc định và đối chiếu cho các đối tượng mới khác với trước đây trừ khi một bộ ký tự và đối chiếu rõ ràng được chỉ định. Điều này bao gồm cơ sở dữ liệu và các đối tượng bên trong chúng, chẳng hạn như bảng, dạng xem và các chương trình được lưu trữ.
Một cách để giữ nguyên các giá trị mặc định trước đó là khởi động máy chủ bằng những dòng này trong my.cnf
tệp:
[mysqld]
character_set_server=latin1
collation_server=latin1_swedish_ci
Một tùy chọn khác, vì bạn đang chạy docker, là chỉ định các tùy chọn cấu hình này làm đối số dòng lệnh cho lệnh chạy docker. Ví dụ:
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
Đối với máy khách, nếu bạn muốn thực hiện các thay đổi - hy vọng những thay đổi này là đủ:
Để sử dụng bộ ký tự 4 byte UTF-8 với Trình kết nối / J, hãy định cấu hình máy chủ MySQL với character_set_server=utf8mb4
và để lại characterEncoding
ra khỏi chuỗi kết nối Connector / J.
Sau đó, trình kết nối / J sẽ tự động phát hiện UTF-8
cài đặt
Hy vọng điều này sẽ hữu ích!