mysql5.7迁移到8,如何解决问题 Illegal mix of collations (utf8mb4 general ci,IMPLICIT) and (utf8mb4 0900 ai ci,IMPLICIT)异常?在 Linux 上为 MySQL 8 设置默认字符集和排序规则通常涉及几个步骤。以下是如何设置默认字符集和排序规则的详细步骤

SHOW VARIABLES LIKE '%character%'; 
SHOW VARIABLES LIKE 'collation%';
show variables where Variable_name like 'collation%';
show variables where Variable_name LIKE 'collation%' or Variable_name LIKE 'character_set_server%';


SHOW CREATE DATABASE db_test;
show full columns from `db_test`.`tb_test`;
show create TABLE `db_test`.`tb_test`;

ALTER DATABASE db_test CONVERT TO CHARACTER SET UTF8MB4 COLLATE utf8mb4_0900_ai_ci;
ALTER TABLE `db_test`.tb_test CONVERT TO CHARACTER SET UTF8MB4 COLLATE utf8mb4_0900_ai_ci;

总结一句话:utf8mb4结合utf8mb4_0900_ai_ci一起使用,就不会报这个异常了。

 

在 Linux 上为 MySQL 8 设置默认字符集和排序规则通常涉及几个步骤。以下是如何设置默认字符集和排序规则的详细步骤:

1. 修改 MySQL 配置文件
首先,你需要编辑 MySQL 的配置文件 my.cnf 或 my.ini(取决于你的 Linux 发行版)。这个文件通常位于 /etc/mysql/、/etc/my.cnf 或 /usr/etc/my.cnf。

使用文本编辑器(如 vi 或 nano)打开配置文件,并添加或修改以下设置:
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_0900_ai_ci

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

这里设置了服务器默认的字符集为 utf8mb4,排序规则为 utf8mb4_0900_ai_ci。同时,为客户端和 MySQL 命令行工具也设置了默认字符集。
2. 重启 MySQL 服务
保存并关闭配置文件后,你需要重启 MySQL 服务以使更改生效。使用以下命令重启 MySQL 服务:
sudo service mysql restart
sudo systemctl restart mysql

3. 检查默认字符集和排序规则
登录到 MySQL 并检查默认字符集和排序规则是否已更改:
mysql -u root -p

SHOW VARIABLES LIKE 'character_set_server';
SHOW VARIABLES LIKE 'collation_server';

4. 为新数据库和表设置字符集和排序规则
当你创建新的数据库或表时,可以指定字符集和排序规则,以确保它们符合你的默认设置。但如果你忘记指定,它们将使用你在配置文件中设置的默认值。

posted on 2024-04-09 18:03  VincentZhu  阅读(101)  评论(0编辑  收藏  举报