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 -pChạ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 ; 0Hy 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ả