gpt4 book ai didi

Mysql2::Error 无法初始化字符集utf8mb4 (路径:/usr/share/mysql/charsets/)

转载 作者:行者123 更新时间:2023-11-30 21:54:06 26 4
gpt4 key购买 nike

在我的 Rails 4.2 应用程序中,我偶然发现了一个奇怪的问题。我不得不将 mysql 编码切换为 utf8mb4(以允许在帖子中使用表情符号)。我已经将 MySql 更新到 5.7,更改了表格等。更新了 database.yml 为:

encoding: utf8mb4
collation: utf8mb4_unicode_ci

一切都在我运行 mac OS 的本地机器上运行。

在测试服务器上,我完成了相同的步骤和配置。但是如果我设置

encoding: utf8mb4

在数据库.yml我明白了

Mysql2::Error Can't initialize character set utf8mb4 (path: /usr/share/mysql/charsets/)

我在两台机器上的 my.cnf 中为 mysql 完成了额外的 MySQL 设置:

innodb_file_format = Barracuda
innodb_large_prefix
innodb_file_per_table = 1

init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8mb4'
innodb_file_format_max = Barracuda
innodb_strict_mode = 1

character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

我可以在测试服务器上添加表情符号,但不能通过 Rails 应用程序添加。在两台机器上,我都使用 mysql2 版本 0.3.21。什么会导致这个问题?

附言。即使我的本地没有它,我也已将 utf8mb4 添加到测试机器上的 Index.xml,但它没有帮助。

最佳答案

也许这会有所帮助:RoR:application_controller.rb:

  def configure_charsets
response.headers["Content-Type"] = "text/html; charset=UTF-8"
suppress(ActiveRecord::StatementInvalid) do
ActiveRecord::Base.connection.execute 'SET NAMES utf8mb4'
end
end

关于Mysql2::Error 无法初始化字符集utf8mb4 (路径:/usr/share/mysql/charsets/),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45981206/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com