Hướng dẫn how do i change the database character set in mysql? - làm cách nào để thay đổi bộ ký tự cơ sở dữ liệu trong mysql?

Từ UTF8 đến UTF8MB4:

1.Show tất cả các ký tự mặc định cơ sở dữ liệu:

SELECT SCHEMA_NAME 'YOUR_DATABASE_NAME', 
default_character_set_name 'charset', 
DEFAULT_COLLATION_NAME 'collation' 
FROM information_schema.SCHEMATA;

2.Show Tất cả trạng thái bảng (bộ ký tự), tập trung vào cột 'đối chiếu':

use YOUR_DATABASE_NAME;    
SHOW TABLE STATUS ;

3. Chuyển đổi SQL: Chuyển đổi cơ sở dữ liệu & tất cả các bảng thành UTF8MB4, UTF8MB4_UNICODE_CI

USE information_schema;
SELECT CONCAT("ALTER DATABASE `",table_schema,"` CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;") AS _sql
FROM `TABLES` WHERE table_schema LIKE "YOUR_DATABASE_NAME" AND TABLE_TYPE='BASE TABLE' GROUP BY table_schema UNION
SELECT CONCAT("ALTER TABLE `",table_schema,"`.`",table_name,"` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;") AS _sql  
FROM `TABLES` WHERE table_schema LIKE "YOUR_DATABASE_NAME" AND TABLE_TYPE='BASE TABLE' GROUP BY table_schema, TABLE_NAME 
/*include all columns, commonly don't need this.*/
/*
UNION
SELECT CONCAT("ALTER TABLE `",`COLUMNS`.table_schema,"`.`",`COLUMNS`.table_name, "` CHANGE `",column_name,"` `",column_name,"` ",data_type,"(",character_maximum_length,") CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci",IF(is_nullable="YES"," NULL"," NOT NULL"),";") AS _sql 
FROM `COLUMNS` INNER JOIN `TABLES` ON `TABLES`.table_name = `COLUMNS`.table_name WHERE `COLUMNS`.table_schema like "YOUR_DATABASE_NAME" and data_type in ('varchar','char') AND TABLE_TYPE='BASE TABLE' UNION
SELECT CONCAT("ALTER TABLE `",`COLUMNS`.table_schema,"`.`",`COLUMNS`.table_name, "` CHANGE `",column_name,"` `",column_name,"` ",data_type," CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci",IF(is_nullable="YES"," NULL"," NOT NULL"),";") AS _sql 
FROM `COLUMNS` INNER JOIN `TABLES` ON `TABLES`.table_name = `COLUMNS`.table_name WHERE `COLUMNS`.table_schema like "YOUR_DATABASE_NAME" and data_type in ('text','tinytext','mediumtext','longtext') AND TABLE_TYPE='BASE TABLE';
*/

4.Run SQL được tạo ra.

5. Đổi cơ sở dữ liệu của bạn.

6.check:

SHOW TABLE STATUS ;

Theo mặc định, cơ sở dữ liệu MySQL có bộ và đối chiếu ký tự Latin1. Tuy nhiên, đôi khi bạn có thể cần lưu trữ các ký tự UTF8 trong cơ sở dữ liệu MySQL. Ở đây, cách thay đổi bộ ký tự từ Latin1 sang UTF8.

Cách chuyển đổi cơ sở dữ liệu MySQL từ Latin1 sang UTF8

Dưới đây là các bước để thay đổi ký tự được đặt từ Latin1 sang UTF cho cơ sở dữ liệu MySQL.

1. Xác định bộ ký tự hiện tại

Đăng nhập vào công cụ dòng lệnh MySQL. Bạn sẽ thấy một dấu nhắc mật khẩu. Nhập mật khẩu của bạn để đăng nhập vào cơ sở dữ liệu MySQL.

$ sudo mysql -uroot -p

Chạy lệnh sau để xác định bộ ký tự hiện tại của cơ sở dữ liệu của bạn. Thay thế cơ sở dữ liệu_name bên dưới bằng tên cơ sở dữ liệu của bạn

mysql> SELECT default_character_set_name 
       FROM information_schema.SCHEMATA S 
       WHERE schema_name = "database_name";
+----------------------------+
| default_character_set_name |
+----------------------------+
| latin1                     |
+----------------------------+

Nếu bạn muốn xác định bộ ký tự cho một bảng cơ sở dữ liệu cụ thể, hãy chạy lệnh sau. Thay thế cơ sở dữ liệu_name và Table_Name bằng cơ sở dữ liệu và tên bảng của bạn tương ứng.

mysql> SELECT CCSA.character_set_name 
       FROM information_schema.TABLES T,
       information_schema.COLLATION_CHARACTER_SET_APPLICABILITY CCSA 
       WHERE CCSA.collation_name = T.table_collation 
       AND T.table_schema = "database_name" 
       AND T.table_name = "table_name";

Chạy lệnh sau để thay đổi bộ ký tự của cơ sở dữ liệu MySQL từ Latin1 sang UTF8. Thay thế cơ sở dữ liệu_name bằng tên cơ sở dữ liệu của bạn

Cho mysql> 5.5

mysql> ALTER DATABASE database_name CHARACTER 
       SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Cho mysql

mysql> ALTER DATABASE database_name CHARACTER 
       SET utf8 COLLATE utf8_unicode_ci;

Tiền thưởng Đọc: Cách xếp hạng phân vùng trong MySQL

Tương tự, ở đây, Lệnh để thay đổi bộ ký tự của bảng MySQL từ Latin1 sang UTF8. Thay thế table_name bằng tên bảng cơ sở dữ liệu của bạn.

Cho mysql> 5.5

mysql> ALTER TABLE table_name CONVERT TO CHARACTER 
       SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Cho mysql

use YOUR_DATABASE_NAME;    
SHOW TABLE STATUS ;
0

Hy vọng, hướng dẫn trên sẽ giúp bạn thay đổi ký tự cơ sở dữ liệu được đặt thành UTF8MB4 (UTF-8).

Bài viết liên quan:

  • về tác giả

Hướng dẫn how do i change the database character set in mysql? - làm cách nào để thay đổi bộ ký tự cơ sở dữ liệu trong mysql?

Làm cách nào để thay đổi bộ ký tự của cơ sở dữ liệu?

Tương tự, đây là lệnh thay đổi bộ ký tự của bảng MySQL từ Latin1 sang UTF8. Thay thế table_name bằng tên bảng cơ sở dữ liệu của bạn. mysql> thay đổi bảng bảng_name Chuyển đổi thành ký tự UTF8 Collate UTF8_UNICODE_CI; Hy vọng, hướng dẫn trên sẽ giúp bạn thay đổi ký tự cơ sở dữ liệu được đặt thành UTF8MB4 (UTF-8).mysql> ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci; Hopefully, the above tutorial will help you change database character set to utf8mb4 (UTF-8).

Làm cách nào để thay đổi một bộ ký tự trong mysql thành latin1?

Sử dụng cơ sở dữ liệu thay đổi và các lệnh thay đổi bảng. Chuyển đổi thành kỹ thuật giả định rằng văn bản được lưu trữ chính xác trong một số ký tự khác (ví dụ: Latin1) và không bị xáo trộn (chẳng hạn như các byte UTF-8 được nhồi nhét vào cột Latin1 mà không chuyển đổi sang Latin1).. The CONVERT TO technique assumes that the text was correctly stored in some other charset (eg, latin1), and not mangled (such as UTF-8 bytes crammed into latin1 column without conversion to latin1).

Làm cách nào để tìm bộ ký tự của cơ sở dữ liệu MySQL?

Để xem bộ ký tự mặc định và đối chiếu cho một cơ sở dữ liệu đã cho, hãy sử dụng các câu lệnh này: sử dụng db_name;Chọn @@ Charact_set_database, @@ collation_database;Ngoài ra, để hiển thị các giá trị mà không cần thay đổi cơ sở dữ liệu mặc định: chọn default_character_set_name, default_collation_name từ thông tin_schema.USE db_name; SELECT @@character_set_database, @@collation_database; Alternatively, to display the values without changing the default database: SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME FROM INFORMATION_SCHEMA.

Bộ ký tự MySQL mặc định là gì?

Bộ và đối chiếu ký tự máy chủ MySQL mặc định là Latin1 và latin1_swedish_ci, nhưng bạn có thể chỉ định các bộ ký tự tại các cấp độ máy chủ, cơ sở dữ liệu, bảng, cột và chuỗi.latin1 and latin1_swedish_ci , but you can specify character sets at the server, database, table, column, and string literal levels.