连续复制
一键复制

1.改 Mysql 配置文件 my.cnf(默认位置/etc/my.cnf)

复制代码
  1. [client]
  2. default-character-set = utf8mb4
  3. [mysql]
  4. default-character-set = utf8mb4
  5. [mysqld]
  6. character-set-client-handshake = FALSE
  7. character-set-server = utf8mb4
  8. collation-server = utf8mb4_unicode_ci
  9. init_connect='SET NAMES utf8mb4'

2.改已有的 database、table 和 column 字符集

复制代码
  1. msql> ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
  2. msql> ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  3. msql> ALTER TABLE table_name modify column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

其中的 database_name、table_name、column_name 要替换成你对应的数据库名、表名、列名。VARCHAR 的长度值也是。

3.重启 Mysql 并检查更改后的字符集设置

复制代码
  1. service mysql restart
  2. 查看字符集设置:
  3. msql> SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
  4. +--------------------------+--------------------+
  5. | Variable_name | Value |
  6. +--------------------------+--------------------+
  7. | character_set_client | utf8mb4 |
  8. | character_set_connection | utf8mb4 |
  9. | character_set_database | utf8mb4 |
  10. | character_set_filesystem | binary |
  11. | character_set_results | utf8mb4 |
  12. | character_set_server | utf8mb4 |
  13. | character_set_system | utf8 |
  14. | collation_connection | utf8mb4_unicode_ci |
  15. | collation_database | utf8mb4_unicode_ci |
  16. | collation_server | utf8mb4_unicode_ci |
  17. +--------------------------+--------------------+
  18. rows in set (0.00 sec)