Hướng dẫn what is the default mysql character set? - bộ ký tự mysql mặc định là gì?

Máy chủ MySQL có bộ và đối chiếu ký tự mặc định được biên dịch. Để thay đổi các mặc định này, hãy sử dụng các tùy chọn --character-set-server--collation-server khi bạn khởi động máy chủ. Xem Phần & NBSP; 5.1.7, Tùy chọn lệnh máy chủ của Cameron. Việc đối chiếu phải là một đối chiếu pháp lý cho bộ ký tự mặc định. Để xác định các đối chiếu nào có sẵn cho mỗi bộ ký tự, hãy sử dụng câu lệnh SHOW COLLATION hoặc truy vấn bảng ____10

Character set 'charset_name' is not a compiled character set and is not
specified in the '/usr/share/mysql/charsets/Index.xml' file
1.

Nếu bạn cố gắng sử dụng một bộ ký tự không được biên dịch vào nhị phân của bạn, bạn có thể gặp phải các vấn đề sau:

  • Nếu chương trình của bạn sử dụng đường dẫn không chính xác để xác định vị trí bộ ký tự được lưu trữ (thường là thư mục

    Character set 'charset_name' is not a compiled character set and is not
    specified in the '/usr/share/mysql/charsets/Index.xml' file
    2 hoặc
    Character set 'charset_name' is not a compiled character set and is not
    specified in the '/usr/share/mysql/charsets/Index.xml' file
    3 trong thư mục cài đặt MySQL), điều này có thể được sửa bằng cách sử dụng tùy chọn
    Character set 'charset_name' is not a compiled character set and is not
    specified in the '/usr/share/mysql/charsets/Index.xml' file
    4 khi bạn chạy chương trình. Ví dụ: để chỉ định một thư mục sẽ được sử dụng bởi các chương trình máy khách MySQL, hãy liệt kê nó trong nhóm
    Character set 'charset_name' is not a compiled character set and is not
    specified in the '/usr/share/mysql/charsets/Index.xml' file
    5 của tệp tùy chọn của bạn. Các ví dụ được đưa ra ở đây cho thấy cài đặt có thể trông như thế nào đối với Unix hoặc Windows, tương ứng:

    [client]
    character-sets-dir=/usr/local/mysql/share/mysql/charsets
    
    [client]
    character-sets-dir="C:/Program Files/MySQL/MySQL Server 8.0/share/charsets"
  • Nếu bộ ký tự là một bộ ký tự phức tạp không thể được tải động, bạn phải biên dịch lại chương trình với sự hỗ trợ cho bộ ký tự.

    Đối với các bộ ký tự unicode, bạn có thể xác định các đối chiếu mà không cần biên dịch lại bằng cách sử dụng ký hiệu LDML. Xem Phần & NBSP; 10.14.4, Thêm một đối chiếu UCA vào một ký tự Unicode.

  • Nếu bộ ký tự là bộ ký tự động, nhưng bạn không có tệp cấu hình cho nó, bạn nên cài đặt tệp cấu hình cho bộ ký tự từ phân phối MySQL mới.

  • Nếu tệp chỉ mục đặt ký tự của bạn (

    Character set 'charset_name' is not a compiled character set and is not
    specified in the '/usr/share/mysql/charsets/Index.xml' file
    6) không chứa tên cho bộ ký tự, chương trình của bạn sẽ hiển thị thông báo lỗi:

    Character set 'charset_name' is not a compiled character set and is not
    specified in the '/usr/share/mysql/charsets/Index.xml' file

    Để giải quyết vấn đề này, bạn nên lấy một tệp chỉ mục mới hoặc thêm tên của bất kỳ bộ ký tự bị thiếu nào vào tệp hiện tại.

Bạn có thể buộc các chương trình khách hàng sử dụng bộ ký tự cụ thể như sau:

[client]
default-character-set=charset_name

Điều này thường không cần thiết. Tuy nhiên, khi

Character set 'charset_name' is not a compiled character set and is not
specified in the '/usr/share/mysql/charsets/Index.xml' file
7 khác với
Character set 'charset_name' is not a compiled character set and is not
specified in the '/usr/share/mysql/charsets/Index.xml' file
8 hoặc
Character set 'charset_name' is not a compiled character set and is not
specified in the '/usr/share/mysql/charsets/Index.xml' file
9 và bạn nhập các ký tự theo cách thủ công (dưới dạng định danh đối tượng cơ sở dữ liệu, giá trị cột hoặc cả hai), chúng có thể được hiển thị không chính xác trong đầu ra từ máy khách hoặc đầu ra có thể được hình thành không chính xác. Trong những trường hợp như vậy, bắt đầu ứng dụng khách MySQL với ____ 20 20, nghĩa là, đặt ký tự máy khách được đặt để phù hợp với bộ ký tự hệ thống, sẽ khắc phục sự cố.


Đối với các ứng dụng lưu trữ dữ liệu bằng cách sử dụng bộ và đối chiếu ký tự MySQL mặc định (

[client]
default-character-set=charset_name
1,
[client]
default-character-set=charset_name
2), không cần cấu hình đặc biệt. Nếu các ứng dụng yêu cầu lưu trữ dữ liệu bằng cách sử dụng một tập hợp hoặc bộ đối chiếu khác nhau, bạn có thể định cấu hình thông tin đặt ký tự nhiều cách:

  • Chỉ định cài đặt ký tự trên mỗi cơ sở dữ liệu. Ví dụ: các ứng dụng sử dụng một cơ sở dữ liệu có thể sử dụng mặc định là

    [client]
    default-character-set=charset_name
    1, trong khi các ứng dụng sử dụng cơ sở dữ liệu khác có thể sử dụng
    [client]
    default-character-set=charset_name
    4.

  • Chỉ định cài đặt ký tự khi khởi động máy chủ. Điều này khiến máy chủ sử dụng các cài đặt đã cho cho tất cả các ứng dụng không sắp xếp khác.

  • Chỉ định cài đặt ký tự tại thời điểm cấu hình, nếu bạn xây dựng MySQL từ nguồn. Điều này khiến máy chủ sử dụng các cài đặt đã cho làm mặc định cho tất cả các ứng dụng, mà không phải chỉ định chúng tại máy chủ khởi động.

Khi các ứng dụng khác nhau yêu cầu các cài đặt ký tự khác nhau, kỹ thuật mỗi cơ sở dữ liệu cung cấp rất nhiều tính linh hoạt. Nếu hầu hết hoặc tất cả các ứng dụng sử dụng cùng một bộ ký tự, việc chỉ định cài đặt ký tự ở thời gian khởi động hoặc cấu hình máy chủ có thể thuận tiện nhất.

Đối với các kỹ thuật trên mỗi cơ sở dữ liệu hoặc máy chủ, cài đặt kiểm soát bộ ký tự để lưu trữ dữ liệu. Các ứng dụng cũng phải cho máy chủ đặt nhân vật nào được đặt để sử dụng cho giao tiếp máy khách/máy chủ, như được mô tả trong các hướng dẫn sau.

Các ví dụ được hiển thị ở đây giả sử việc sử dụng bộ ký tự

[client]
default-character-set=charset_name
5 và đối chiếu
[client]
default-character-set=charset_name
6 trong các bối cảnh cụ thể thay thế cho các mặc định của
[client]
default-character-set=charset_name
1 và
[client]
default-character-set=charset_name
2.

  • Chỉ định cài đặt ký tự trên mỗi cơ sở dữ liệu. & NBSP; Để tạo cơ sở dữ liệu sao cho các bảng của nó sử dụng một bộ ký tự mặc định và đối chiếu để lưu trữ dữ liệu, hãy sử dụng câu lệnh

    [client]
    default-character-set=charset_name
    9 như thế này: To create a database such that its tables use a given default character set and collation for data storage, use a
    [client]
    default-character-set=charset_name
    9 statement like this:

    CREATE DATABASE mydb
      CHARACTER SET latin1
      COLLATE latin1_swedish_ci;

    Các bảng được tạo trong cơ sở dữ liệu sử dụng

    [client]
    default-character-set=charset_name
    5 và
    [client]
    default-character-set=charset_name
    6 theo mặc định cho bất kỳ cột ký tự nào.

    Các ứng dụng sử dụng cơ sở dữ liệu cũng sẽ định cấu hình kết nối của chúng với máy chủ mỗi khi chúng kết nối. Điều này có thể được thực hiện bằng cách thực hiện câu lệnh

    CREATE DATABASE mydb
      CHARACTER SET latin1
      COLLATE latin1_swedish_ci;
    2 sau khi kết nối. Câu lệnh có thể được sử dụng bất kể phương thức kết nối (máy khách MySQL, tập lệnh PHP, v.v.).mysql client, PHP scripts, and so forth).

    Trong một số trường hợp, có thể định cấu hình kết nối để sử dụng ký tự mong muốn được đặt theo cách khác. Ví dụ: để kết nối bằng MySQL, bạn có thể chỉ định tùy chọn dòng lệnh

    CREATE DATABASE mydb
      CHARACTER SET latin1
      COLLATE latin1_swedish_ci;
    3 để đạt được hiệu ứng tương tự như
    CREATE DATABASE mydb
      CHARACTER SET latin1
      COLLATE latin1_swedish_ci;
    4.mysql, you can specify the
    CREATE DATABASE mydb
      CHARACTER SET latin1
      COLLATE latin1_swedish_ci;
    3 command-line option to achieve the same effect as
    CREATE DATABASE mydb
      CHARACTER SET latin1
      COLLATE latin1_swedish_ci;
    4.

    Để biết thêm thông tin về việc định cấu hình các kết nối máy khách, xem Phần & NBSP; 10.4, Bộ ký tự kết nối và bộ cộng đồng.

    Ghi chú

    Nếu bạn sử dụng

    CREATE DATABASE mydb
      CHARACTER SET latin1
      COLLATE latin1_swedish_ci;
    5 để thay đổi bộ hoặc đối chiếu ký tự mặc định cơ sở dữ liệu, các thói quen được lưu trữ hiện tại trong cơ sở dữ liệu sử dụng các mặc định đó phải được bỏ và tái tạo để chúng sử dụng mặc định mới. .

  • Chỉ định cài đặt ký tự khi khởi động máy chủ. & NBSP; Để chọn một bộ ký tự và đối chiếu khi khởi động máy chủ, hãy sử dụng các tùy chọn --character-set-server--collation-server. Ví dụ: để chỉ định các tùy chọn trong tệp tùy chọn, bao gồm các dòng sau: To select a character set and collation at server startup, use the --character-set-server and --collation-server options. For example, to specify the options in an option file, include these lines:

    [mysqld]
    character-set-server=latin1
    collation-server=latin1_swedish_ci

    Các cài đặt này áp dụng toàn bộ máy chủ và áp dụng làm mặc định cho cơ sở dữ liệu được tạo bởi bất kỳ ứng dụng nào và cho các bảng được tạo trong các cơ sở dữ liệu đó.

    Vẫn cần các ứng dụng để định cấu hình kết nối của chúng bằng cách sử dụng

    CREATE DATABASE mydb
      CHARACTER SET latin1
      COLLATE latin1_swedish_ci;
    8 hoặc tương đương sau khi chúng kết nối, như được mô tả trước đây. Bạn có thể bị cám dỗ để khởi động máy chủ với tùy chọn
    CREATE DATABASE mydb
      CHARACTER SET latin1
      COLLATE latin1_swedish_ci;
    9 để khiến
    [mysqld]
    character-set-server=latin1
    collation-server=latin1_swedish_ci
    0 được thực thi tự động cho mỗi máy khách kết nối. Tuy nhiên, điều này có thể mang lại kết quả không nhất quán vì giá trị
    [mysqld]
    character-set-server=latin1
    collation-server=latin1_swedish_ci
    1 không được thực thi cho người dùng có đặc quyền
    [mysqld]
    character-set-server=latin1
    collation-server=latin1_swedish_ci
    2 (hoặc đặc quyền
    [mysqld]
    character-set-server=latin1
    collation-server=latin1_swedish_ci
    3 không dùng nữa).

  • Chỉ định cài đặt ký tự tại thời gian cấu hình MySQL. & NBSP; Để chọn một bộ ký tự và đối chiếu nếu bạn định cấu hình và xây dựng MySQL từ nguồn, hãy sử dụng các tùy chọn cmake

    [mysqld]
    character-set-server=latin1
    collation-server=latin1_swedish_ci
    4 và
    [mysqld]
    character-set-server=latin1
    collation-server=latin1_swedish_ci
    5:
    To select a character set and collation if you configure and build MySQL from source, use the
    [mysqld]
    character-set-server=latin1
    collation-server=latin1_swedish_ci
    4 and
    [mysqld]
    character-set-server=latin1
    collation-server=latin1_swedish_ci
    5 CMake options:

    cmake . -DDEFAULT_CHARSET=latin1 \
      -DDEFAULT_COLLATION=latin1_swedish_ci

    Máy chủ kết quả sử dụng

    [client]
    default-character-set=charset_name
    5 và
    [client]
    default-character-set=charset_name
    6 làm mặc định cho cơ sở dữ liệu và bảng và cho các kết nối máy khách. Không cần thiết phải sử dụng --character-set-server--collation-server để chỉ định các mặc định đó khi khởi động máy chủ. Nó cũng không cần thiết cho các ứng dụng để định cấu hình kết nối của chúng bằng cách sử dụng
    CREATE DATABASE mydb
      CHARACTER SET latin1
      COLLATE latin1_swedish_ci;
    8 hoặc tương đương sau khi chúng kết nối với máy chủ.

Bất kể cách bạn định cấu hình ký tự MySQL được đặt để sử dụng ứng dụng, bạn cũng phải xem xét môi trường trong đó các ứng dụng đó thực thi. Ví dụ: nếu bạn có ý định gửi các câu lệnh bằng văn bản UTF-8 được lấy từ một tệp bạn tạo trong trình chỉnh sửa, bạn nên chỉnh sửa tệp với locale của môi trường của bạn thành UTF-8 để mã hóa tệp là chính xác và do đó rằng hệ điều hành xử lý nó một cách chính xác. Nếu bạn sử dụng máy khách MySQL từ trong cửa sổ đầu cuối, cửa sổ phải được cấu hình để sử dụng UTF-8 hoặc ký tự có thể không hiển thị đúng. Đối với một tập lệnh thực thi trong môi trường web, tập lệnh phải xử lý mã hóa ký tự chính xác để tương tác với máy chủ MySQL và nó phải tạo các trang biểu thị chính xác việc mã hóa để các trình duyệt biết cách hiển thị nội dung của các trang. Ví dụ: bạn có thể bao gồm thẻ

cmake . -DDEFAULT_CHARSET=latin1 \
  -DDEFAULT_COLLATION=latin1_swedish_ci
1 này trong phần tử
cmake . -DDEFAULT_CHARSET=latin1 \
  -DDEFAULT_COLLATION=latin1_swedish_ci
2 của bạn:mysql client from within a terminal window, the window must be configured to use UTF-8 or characters may not display properly. For a script that executes in a Web environment, the script must handle character encoding properly for its interaction with the MySQL server, and it must generate pages that correctly indicate the encoding so that browsers know how to display the content of the pages. For example, you can include this
cmake . -DDEFAULT_CHARSET=latin1 \
  -DDEFAULT_COLLATION=latin1_swedish_ci
1 tag within your
cmake . -DDEFAULT_CHARSET=latin1 \
  -DDEFAULT_COLLATION=latin1_swedish_ci
2 element:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


Làm cách nào để thay đổi ký tự mặc định được đặt trong MySQL?

Máy chủ MySQL có bộ và đối chiếu ký tự mặc định được biên dịch.Để thay đổi các mặc định này, hãy sử dụng các tùy chọn-collation-server-collation-server --character-set-server khi bạn khởi động máy chủ.use the --character-set-server and --collation-server options when you start the server.

Charset mặc định UTF8MB4 là gì?

Tags: Kiểu dữ liệu.Từ MySQL 8.0, UTF8MB4 là bộ ký tự mặc định và đối chiếu mặc định cho UTF8MB4 là UTF8MB4_0900_AI_CI.utf8mb4 is the default character set, and the default collation for utf8mb4 is utf8mb4_0900_ai_ci.

Sự khác biệt giữa UTF là gì

Sự khác biệt giữa UTF8 và Latin1 là gì?Chúng là các mã hóa khác nhau (với một số ký tự được ánh xạ tới các chuỗi byte phổ biến, ví dụ: các ký tự ASCII và nhiều chữ cái có dấu).UTF-8 là một mã hóa Unicode với tất cả các điểm codePoint của nó;Latin1 mã hóa ít hơn 256 ký tự.UTF-8 is one encoding of Unicode with all its codepoints; Latin1 encodes less than 256 characters.

UTF là gì

UTF8 là một ký tự được đặt trong MySQL chỉ hỗ trợ tối đa ba byte của các ký tự UTF-8, đây là mặt phẳng đa văn bản cơ bản trong Unicode.Để lưu các ký tự UTF-8 dài 4 byte trong MySQL, bạn cần sử dụng bộ ký tự UTF8MB4, nhưng chỉ 5,5.Sau 3 phiên bản được hỗ trợ (phiên bản xem: Chọn phiên bản ();).