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