使用AWS OpsWorks覆盖RDS中的my.conf模板

时间:2016-03-06 18:55:41

标签: mysql ruby-on-rails chef rds aws-opsworks

我正在尝试将我的RDS实例默认字符集更改为utf8mb4,因此我可以支持表情符号。我有一个repo with all my recipes,我过去用它来自定义我的部署。我从AWS跟踪this guide,但在部署应用程序时,更改未反映在数据库中。我还确保在我的自定义cookbook仓库中的metadata.rb目录的根目录中创建一个mysql文件。

我还使用新的属性组设置了一个新的RDS实例,其中相应的字符集和排序规则设置为utf8mb4。此DB也在我的OpsWorks应用程序中设置为我的数据源。

在Rails中,我还将编码和排序规则设置为utf8mb4 ...

default: &default
  adapter: mysql2
  encoding: utf8mb4
  collation: utf8mb4_general_ci
  ...

如果我ssh到我的应用程序服务器然后连接到MySql,这是我在查询全局变量时看到的......

mysql> SHOW GLOBAL VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
+--------------------------+--------------------+
| Variable_name            | Value              |
+--------------------------+--------------------+
| character_set_client     | utf8mb4            |
| character_set_connection | utf8mb4            |
| character_set_database   | utf8mb4            |
| character_set_filesystem | binary             |
| character_set_results    | utf8mb4            |
| character_set_server     | utf8mb4            |
| character_set_system     | utf8               |
| collation_connection     | utf8mb4_unicode_ci |
| collation_database       | utf8mb4_unicode_ci |
| collation_server         | utf8mb4_unicode_ci |
+--------------------------+--------------------+

但是当我对非全局变量做同样的事情时,我看到了这一点:

mysql> show variables like 'char%';
+--------------------------+-------------------------------------------+
| Variable_name            | Value                                     |
+--------------------------+-------------------------------------------+
| character_set_client     | utf8                                      |
| character_set_connection | utf8                                      |
| character_set_database   | utf8mb4                                   |
| character_set_filesystem | binary                                    |
| character_set_results    | utf8                                      |
| character_set_server     | utf8mb4                                   |
| character_set_system     | utf8                                      |
| character_sets_dir       | /rdsdbbin/mysql-5.6.23.R1/share/charsets/ |
+--------------------------+-------------------------------------------+
8 rows in set (0.00 sec)

我还应该提一下,在我使用迁移将适当的表和列设置为utf8mb4后,本地工作正常。

此时,我无法弄清楚为什么我无法正确应用字符集。希望比我聪明的人可以帮我解决这个问题!

由于

1 个答案:

答案 0 :(得分:0)

在深入挖掘之后,我意识到在更新自定义烹饪书时我错过了一个关键步骤。我没有意识到简单地进行部署不会检索新的配方。在我将命令运行到“更新自定义菜谱”然后进行部署后,它运行了。

希望这有助于将来。