Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Giới thiệu lại Lỗi chỉ mục bộ ký tự ban đầu không xác định?

Đ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!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm nạp các hàng trong bảng cơ sở dữ liệu MySQL bằng MySQL C API và C ++

  2. java.sql.SQLException:Sau khi kết thúc kết quả được đặt trong mysql

  3. Sao chép dữ liệu vào bảng mới trong MySQL

  4. MySQL là gì:Tổng quan

  5. Thuật sĩ nhập dữ liệu bảng bàn làm việc MySQL cực kỳ chậm