MySQL 8.0之后,默认collation不再像之前版本一样是是utf8mb4_general_ci(这个名字也确实取得有问题,话说得太满,有点自负了),而是统一更新成了utf8mb4_0900_ai_ci。 不幸的是,我之前建的各种数据表,它们的collation仍然是utf8mb4_general_ci,而新建的表是utf8mb4_0900_ai_ci。如果恰好遇到包含字符串相等或者...
utf8_general_ci校对规则进行的比较速度很快,但是与使用 utf8mb4_unicode_ci的校对规则相比,比较正确性较差。 3、utf8mb4_bin: 将字符串每个字符用二进制数据编译存储,区分大小写,而且可以存二进制的内容。 4、utf8mb4_0900_ai_ci: MySQL 8.0 默认的是 utf8mb4_0900_ai_ci,属于 utf8mb4_unicode_ci 中...
1. 重新编译mysql和php,mysql加入编译参数 –default-character-set=utf8 2. PHP程序在查询数据库之前,执行mysql_query(”set names utf8;”); 3.修改my.cnf,在[mysqld]中加入init-connect=”set names utf8” (对于超级用户连接该选项无效) 4. 启动mysqld 加入参数–skip-character-set-client-handshake忽略...
这是MySQL 8.0 默认的排序规则 ,属于 utf8mb4_unicode_ci 中的一种. uft8mb4 表示用 UTF-8编码方案,每个字符最多占4个字节。 0900 指的是 Unicode 校对算法版本,代表Unicode 9.0的规范。(Unicode归类算法是用于比较符合Unicode标准要求的两个Unicode字符串的方法)。 ai(accent insensitive )指的是口音不敏感,...
utf8mb4_0900_ai_ci是MySQL 8.0及以上版本引入的字符集和校对规则。如果你的MySQL版本低于8.0,那么你将无法使用这个字符集和校对规则。你可以通过运行以下SQL命令来检查MySQL的版本: sql SELECT VERSION(); 如果版本低于8.0,你需要考虑升级MySQL或者改用支持的字符集和校对规则。 检查执行脚本中是否指定了正确的字符...
ci 表示不区分大小写。也就是说,排序时 p 和 P 之间没有区别。 utf8mb4 已成为默认字符集,在 MySQL 8.0.1 及更高版本中将 utf8mb4_0900_ai_ci 作为默认排序规则。以前,utf8mb4_general_ci 是默认排序规则。由于 utf8mb4_0900_ai_ci 排序规则现在是默认排序规则,因此默认情况下新表格可以存储基本多语...
打开SQL脚本,查看 utf8mb4_0900_ai_ci 关键字,这是字段的字符集。 二、报错原因 1、MySQL 版本不一样; 2、utf8mb4_0900_ai_ci 在 MySQL 8 以下是不被支持的,检查发现本地数据库为5.7,服务器MySQL数据库版本为 8.0.32 三、解决方案 3.1 升级 MySQL 数据库版本 ...
简介:【MySQL异常解决】MySQL执行SQL文件出现【Unknown collation ‘utf8mb4_0900_ai_ci‘】的解决方案 一、背景描述 从服务器MySQL中导出数据为SQL执行脚本后,在本地电脑执行导出的SQL脚本, 报错:Unknown collation ‘utf8mb4_0900_ai_ci‘ 打开SQL脚本,查看 utf8mb4_0900_ai_ci 关键字,这是字段的字符集。
utf8mb4_0900_ai_ci替换为utf8_general_ci utf8mb4替换为utf8 再次执行sql文件就可以。 第二种解决方式: 把sql文件中对应的utf8mb4_0900_ai_ci全部删除 第三种解决方式: 建表的时候在Navicat中的选项中不选择排序规则: 如果有报错的情况记得把字符集改为utf8。