【问题标题】:How to set the default character-set?如何设置默认字符集?
【发布时间】:2011-12-04 23:26:27
【问题描述】:

我想在 mysql 中创建一个新的数据库。 我将utf8设置为默认字符集,但是当我尝试重新启动db时,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: 关机完成

我知道取消default-character-set后,mysql会重启。但是如果我不得不设置默认字符集,还有其他方法可以让 mysql 再次工作吗?

【问题讨论】:

  • 你在mysql的配置文件中设置了吗?试试 character-set-server=utf8
  • 我已经准备好试一试了,但它仍然会发出相同的提示并且无法重新启动
  • 是的,在“my.ini”中。 default-character-set 在 5.5 中已弃用此链接可能有用:dev.mysql.com/doc/refman/5.5/en/charset-configuration.html 或者查找一些 mysql 附带的示例配置文件。已经创建了数据库?
  • 是的,我已经创建了。我首先在 mysql 5 的管理 gui 中设置了它,会不会有任何兼容错误?
  • 顺便说一下,你以前用过mysql5.5的工作台吗?我想通过恢复页面设置一个新的数据库,但不幸的是我没有找到任何关于创建新数据库的细节db 在恢复页面中使用 sql 文件。你知道这个制造细节切换到哪里!?

标签: mysql


【解决方案1】:

我遇到了类似的问题。正如 EO2 指出的那样,答案是默认字符集在 5.5 中已弃用。你应该改用:

character-set-server = utf8

顺便说一句,最好将答案作为答案而不是 cmets 来回答... ;-)

【讨论】:

  • 你会把这个放在my.cnf的哪个部分?
【解决方案2】:

我在运行 mysqlslap 时遇到了类似的问题,我收到以下错误:

mysqlslap unknown variable 'default-character-set=utf8mb4'

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

选项设置在/etc/mysql/mariadb.conf.d/50-client.cnf,所以我刚刚评论了这行default-character-set = utf8mb4,一切顺利。

我在 Debian 9 上运行 MySQL。以防有人遇到同样的问题。

【讨论】:

    【解决方案3】:

    今天遇到了同样的问题,但版本为 5.7.31。对我来说,评论这行确实有效,但是.. 那么如何在配置文件中设置字符集呢?

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

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

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

    请记住“mysqld”部分,这很重要,因为在“client”部分中这不起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-30
      • 2016-02-20
      • 2015-02-13
      • 2017-06-26
      • 2021-08-03
      • 2015-03-10
      • 1970-01-01
      • 2016-03-13
      相关资源
      最近更新 更多