MySQL数据库 - 将characterset和collat ion转换为utf8mb4和utf8mb4_unicode_ci?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL数据库 - 将characterset和collat ion转换为utf8mb4和utf8mb4_unicode_ci?相关的知识,希望对你有一定的参考价值。
我已经使用collowing命令将我的mysql数据库的charset和collation从latin1转换为utf8mb4 here
ALTER DATABASE databasename CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
为了检查转换是否正确完成,我运行了以下命令。
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%'
OR Variable_name LIKE 'collation%'
输出是
当character_set_client,character_set_connection,character_set_database,character_set_results现在在utf8mb4中时,character_set_filesystem是二进制的,而character_set_server仍然是拉丁语。究竟是什么以及为什么它仍然没有在utf8mb4中?
同样,collation_connection和collation_database在utf8mb4_unicode_ci中,但collation_server仍在latin1_swedish_ci中
https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_character_set_filesystem
此变量用于解释引用文件名的字符串文字,例如LOAD DATA INFILE和SELECT ... INTO OUTFILE语句以及LOAD_FILE()函数。在文件打开尝试发生之前,此类文件名将从character_set_client转换为character_set_filesystem。默认值为binary,表示不进行转换。
您可能不需要更改此值。
https://dev.mysql.com/doc/refman/5.7/en/charset-server.html
如果未在CREATE DATABASE语句中指定数据库字符集和排序规则,则将服务器字符集和排序规则用作缺省值。他们没有其他目的。
您可以在/etc/my.cnf
中更改此值,但这是多余的,因为您已经为每个数据库指定了字符集。
以上是关于MySQL数据库 - 将characterset和collat ion转换为utf8mb4和utf8mb4_unicode_ci?的主要内容,如果未能解决你的问题,请参考以下文章
mysql server characterset 显示为latin1怎么改成utf8?