在我的Rails 4.2应用程序中,我偶然发现了一个奇怪的问题。我不得不将mysql编码切换到utf8mb4(以允许在帖子中使用Emoji)。 我已经更新MySQL来5.7,改变tabels等更新的database.yml有:Mysql2 ::错误无法初始化字符集utf8mb4(路径:/ usr/share/mysql/charsets /)
encoding: utf8mb4
collation: utf8mb4_unicode_ci
我的一切都运行的Mac OS本地机器上工作。
在测试服务器上,我已经完成了相同的步骤和配置。但是,如果我在database.yml中 设置
encoding: utf8mb4
我得到
Mysql2::Error Can't initialize character set utf8mb4 (path: /usr/share/mysql/charsets/)
额外的MySQL安装的MySQL我在my.cnf做在两台机器上:
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
。 什么会导致此问题?
PS。即使我没有在我的本地我已经在测试机器上添加了到Index.xml的utf8mb4,但它没有帮助。
什么是您的服务器的MySQL服务器的版本?我认为这是你的问题。我相信utf8mb4从5.5开始支持,但我不确定。 –
我使用MySQL 5.7.19。数据库本身支持uft8mb4,我可以将符号(表情符号)插入数据库,但不能使用Rails应用程序。 – rolkos
@rolkos - 看看是否有帮助:http://blog.arkency.com/2015/05/how-to-store-emoji-in-a-rails-app-with-a-mysql-database/ –