前提・実現したいこと
docker-composeによるコンテナをfargateにデプロイしようとしています。
DBはRDSでMySQLインスタンスを作成しています。
発生している問題・エラーメッセージ
タスク起動後、ALBのドメインを叩いてアプリを表示し、ユーザ登録をしようとしたところエラー画面になりました。
その時のcloudwatchはログは以下です。
ActiveRecord::StatementInvalid (Mysql2::Error: Incorrect string value: '\xE3\x81\x8A\xE3\x82\x81...' for column 'name' at row 1): [5a2d9920-b615-45ca-837b-67415ca1060d] ActiveRecord::StatementInvalid (Mysql2::Error: Incorrect string value: '\xE3\x81\x8A\xE3\x82\x81...' for column 'name' at row 1):
試したこと
入力するデータを日本語を入れずアルファベットと記号のみで登録するとエラーにはなりませんでした。
DBに設定されている文字コードが日本語対応されていないものになっていると思い、以下のことをしました。
-
RDSインスタンスのパラメータグループの文字コードに関連しそうな6項目をutf8mb4に設定し、インスタンスを再起動する(character_set_client、character_set_connection、character_set_database、character_set_filesystem、character_set_results、character_set_server)
-
database.ymlのencodingとcharsetをutf8からutf8mb4に変更する
しかし状況は変わらず、日本語を入れてユーザ登録すると同様のエラーログが出る次第です。
該当のソースコード
database.yml
default: &default adapter: mysql2 encoding: utf8mb4 pool: 5 charset: utf8mb4 username: XXXX password: XXXX host: db development: <<: *default database: myapp_development test: <<: *default database: myapp_test production: <<: *default database: <%= ENV['RDS_DB_NAME'] %> username: <%= ENV['RDS_USERNAME'] %> password: <%= ENV['RDS_PASSWORD'] %> host: <%= ENV['RDS_HOSTNAME'] %> port: <%= ENV['RDS_PORT'] %> url: <%= ENV['RDS_URL'] %>
補足情報(FW/ツールのバージョンなど)
MAC OS
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/05 03:13