繁体   English   中英

添加整理到 mysql 数据库

[英]Adding collate to mysql database

我在执行 sql 时遇到了这个错误

ERROR 1253 (42000) at line 25: COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'utf8mb4'

所以我尝试添加utf8_general_ci作为整理。

alter database mydatabase character set utf8mb4_general_ci collate utf8_general_ci;

我有这样的错误如何将整理添加到现有数据库中。

或者我的想法是错误的?

ERROR 1115 (42000): Unknown character set: 'utf8mb4_general_ci'

非常感谢你。


我试试这个

mysql> select * 
    -> from information_schema.collations 
    -> where CHARACTER_SET_NAME = 'utf8mb4' 
    ->   and COLLATION_NAME like '%general%';

+--------------------+--------------------+----+------------+-------------+---------+---------------+
| COLLATION_NAME     | CHARACTER_SET_NAME | ID | IS_DEFAULT | IS_COMPILED | SORTLEN | PAD_ATTRIBUTE |
+--------------------+--------------------+----+------------+-------------+---------+---------------+
| utf8mb4_general_ci | utf8mb4            | 45 |            | Yes         |       1 | PAD SPACE     |
+--------------------+--------------------+----+------------+-------------+---------+---------------+
1 row in set (0.00 sec)

然后我试试这个 sql,它有效

改变数据库 mydatabase 字符集 utf8mb4 整理 utf8mb4_general_ci;

但是,第一个问题(我正在尝试引入转储文件)

ERROR 1253 (42000) at line 25: COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'utf8mb4' is not solved.

尝试这样做:

ALTER DATABASE `DBname` COLLATE 'utf8mb4_unicode_ci';

因为您的 CHARACTER_SET_NAME 是utf8mb4 ,所以您可以选择从这些通用排序规则中进行选择:

select * 
from information_schema.collations 
where CHARACTER_SET_NAME = 'utf8mb4' 
  and COLLATION_NAME like '%general%';

CHARACTER SET描述了字符的编码 它的名称类似于utf8mb4utf8latin1ascii

COLLATION说明如何比较或排序字符串。 它的名称以CHARACTER SET开头,然后添加了其他内容。 大多数归类以_ci (不区分大小写)或_bin (二进制——盲目地比较位)结尾。

utf8mb4_general_ci是一个非常古老的排序规则; 我建议使用较新的,例如utf8mb4_unicode_520_ci (在大多数版本中可用)或utf8mb4_0900_ai_ci (在 MySQL 8.0 中)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM