Mysql字元集詳解
Mysql utf8mb4說明
character set 字元集
utf8mb4=utf8 most byte 4 是比utf8更完整的字元集collation 字元排序方式
utf8mb4_unicode_ci 是依據unicode排序utf8mb4_general_ci 無依據unicode排序,所以排序可能某些字元會不如預期
實作上只要全部統一就好,table跟mysql 系統相同,
用utf8mb4_unicode_ci或utf8mb4_general_ci都可以
檢查字元集指令
mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
字元集變數
character_set_client | utf8mb4 |character_set_connection | utf8mb4 |
character_set_database | utf8mb4 |
character_set_filesystem | binary |
character_set_results | utf8mb4 |
character_set_server | utf8mb4 |
character_set_system | utf8 |
character_sets_dir | /usr/share/mysql-8.0/charsets/
變數說明
character_set_client客户端请求数据的字符集
character_set_connection
从客户端接收到数据,然后传输的字符集
character_set_database
默认数据库的字符集,无论默认数据库如何改变,都是这个字符集;如果没有默认数据库,那就使用 character_set_server指定的字符集,这个变量建议由系统自己管理,不要人为定义。
character_set_filesystem
把os上文件名转化成此字符集,即把 character_set_client转换character_set_filesystem, 默认binary是不做任何转换的
character_set_results
结果集的字符集
character_set_server
数据库服务器的默认字符集
character_set_system
这个值总是utf8,不需要设置,是为存储系统元数据的字符集
設定完整支援utf8mb4
分兩個部分 1 config中設定 2 建立table及建立column時設定1.
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
2.
# For each database:
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
# For each table:
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# For each column:
ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
沒有留言:
張貼留言