如何设置默认字符集?

时间:2011-10-11 02:56:14

标签: mysql

我想在mysql中创建一个新的数据库。 我将utf8设置为默认字符集,但是当我尝试重新启动数据库时,mysql无法重新启动并发布以下提示:

尝试启动服务器... 无法重新连接到MySQL服务器。 服务器无法启动。

插件'FEDERATED'已停用。

C:\ Program Files \ MySQL \ MySQL Server 5.5 \ bin \ mysqld:未知变量'default-character-set = utf8'

中止

C:\ Program Files \ MySQL \ MySQL Server 5.5 \ bin \ mysqld:Shutdown complete

我知道在取消默认字符集后,mysql会重启。但是如果我来设置默认字符集,还有其他方法可以让mysql再次运行吗?

3 个答案:

答案 0 :(得分:23)

我有类似的问题。正如EO2所指出的那样,答案是默认字符集在5.5中已弃用。您应该使用:

character-set-server = utf8
顺便说一下,如果答案作为答案回答,而不是评论......,那就更好了; - )

答案 1 :(得分:0)

运行mysqlslap时遇到类似的问题,出现以下错误:

output = "ab"

经过大量调查,我发现mysqlslap unknown variable 'default-character-set=utf8mb4' 被设置在另一个文件中,而不是我更改的所有配置文件。

该选项已在default-character-set中设置,因此我只注释了/etc/mysql/mariadb.conf.d/50-client.cnf这一行,一切顺利。

我在Debian 9上运行了MySQL,以防万一有人遇到相同的问题。

答案 2 :(得分:0)

今天有相同的问题,但版本为5.7.31。对我来说,这行确实有用,但是..如何在配置文件中设置字符集呢?

有一个回复:https://dev.mysql.com/doc/refman/5.7/en/charset-applications.html

因此,要在服务器启动时指定字符设置,我们可以例如将这些行添加到两个文件中(对我来说是: 50-client.cnf 50-mysql-clients。 cnf -都在 /etc/mysql/mariadb.conf.d/目录中):

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci

请记住“ mysqld ”部分,这一点很重要,因为在“客户端”部分中这将无效。