collation_database
时间: 2023-12-30 09:02:19 浏览: 25
"collation_database" 是 MySQL 数据库中的一个系统变量,它指定了数据库默认的字符集排序规则(collation)。字符集指定了字符的编码方式,而排序规则则指定了如何对这些字符进行排序。在创建数据库时,可以通过指定字符集和排序规则来设置 "collation_database" 的值。如果没有指定排序规则,则使用字符集的默认排序规则。
例如,如果创建一个名为 "mydatabase" 的数据库,并将其字符集设置为 "utf8mb4",则可以使用以下命令设置默认排序规则:
```
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
```
这将将 "collation_database" 设置为 "utf8mb4_general_ci",其中 "ci" 表示 "case-insensitive",表示在排序时不考虑字符的大小写。如果需要区分大小写,则可以使用 "utf8mb4_bin" 排序规则。
相关问题
mysql8 collation_database 与collation_server优先级
在 MySQL 8 中,`collation_database` 和 `collation_server` 都是用来设置字符集和排序规则的参数,但是它们的优先级是不同的。
`collation_server` 是设置 MySQL 服务器的默认字符集和排序规则的参数,它会影响到所有的数据库和表。如果没有在数据库或表中指定字符集和排序规则,那么就会使用 `collation_server` 的设置。
而 `collation_database` 则是设置当前数据库的字符集和排序规则的参数,它会覆盖 `collation_server` 的设置。如果在使用数据库时指定了不同的字符集和排序规则,那么就会使用 `collation_database` 的设置。
因此,`collation_database` 的优先级高于 `collation_server`。如果在数据库中指定了字符集和排序规则,那么就会使用数据库中的设置,而不是使用服务器的默认设置。如果没有在数据库中指定,那么就会使用服务器的默认设置。
2023-06-08T10:46:25.851539+08:00 0 [ERROR] [MY-000067] [Server] unknown variable 'collation_database=utf8mb4_general_ci;'. 正确的配置是什么
正确的配置应该是将 `collation_database` 的值设置为 `utf8mb4_general_ci`,不需要在后面加分号。在 MySQL 的配置文件中,可以在 `[mysqld]` 段中添加以下行来设置该变量:
```
[mysqld]
collation_database = utf8mb4_general_ci
```
请注意,这里只是设置了 `collation_database` 的值,并没有设置字符集编码,需要在 `[mysqld]` 段中添加 `character_set_server` 选项来设置字符集编码,例如:
```
[mysqld]
collation_database = utf8mb4_general_ci
character_set_server = utf8mb4
```
设置完成后,需要重启 MySQL 服务才能生效。