在我的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/ –