質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

UTF-8

UTF-8は8ビット符号単位の文字符号化形式及び文字符号化スキームです。データ交換方式、ファイル形式としては、一般的にUTF-8が使われる傾向があります。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

1回答

3113閲覧

mysqlで文字コードをutf8に変更したい

kozica

総合スコア58

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

UTF-8

UTF-8は8ビット符号単位の文字符号化形式及び文字符号化スキームです。データ交換方式、ファイル形式としては、一般的にUTF-8が使われる傾向があります。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

1クリップ

投稿2018/09/25 05:57

編集2022/01/12 10:55

mysqlの文字コードがlatin1となっているので、utf8mb4に変更しようとしましたが、
どうもうまくいきません。

AWSのEC2インスタンスをssh接続で使用しています。

確認したところ、
$sudo mysql
ではuft8mb4になっており、
$rails dbconsole
だとlatin1になっているので、問題はRails側にあるようです。

色々調べた所RailsでDB作成時の文字コードになるのが原因なようです。
そこで改善策を見た所、DBを削除して作り直す方法と下記のようにoptionを
つけてmigrateする方法しかわかりませんでした。

これだと毎回optionをつける必要性があるため
どうにか設定変更して今後もutf8mb4として使えるようにできないでしょうか?

ruby

1def change 2 create_table :personal_log_merges, options:"DEFAULT CHARSET=utf8mb4" do |t|

ruby

1mysql> show variables like 'char%'; 2+--------------------------+----------------------------+ 3| Variable_name | Value | 4+--------------------------+----------------------------+ 5| character_set_client | utf8mb4 | 6| character_set_connection | utf8mb4 | 7| character_set_database | latin1 | 8| character_set_filesystem | binary | 9| character_set_results | utf8mb4 | 10| character_set_server | utf8mb4 | 11| character_set_system | utf8 | 12| character_sets_dir | /usr/share/mysql/charsets/ | 13+--------------------------+----------------------------+ 14 15 16$ sudo vi /etc/my.cnf 17[mysqld] 18datadir=/var/lib/mysql 19socket=/var/lib/mysql/mysql.sock 20# Disabling symbolic-links is recommended to prevent assorted security risks 21symbolic-links=0 22default-time-zone = 'Asia/Tokyo' 23character-set-server = utf8mb4 24# Settings user and group are ignored when systemd is used. 25# If you need to run mysqld under a different user or group, 26# customize your systemd unit file for mysqld according to the 27# instructions in http://fedoraproject.org/wiki/Systemd 28 29[client] 30socket=/var/lib/mysql/mysql.sock 31default-character-set = utf8 32 33[mysqld_safe] 34log-error=/var/log/mysqld.log 35pid-file=/var/run/mysqld/mysqld.pid 36 37#Rails DBの設定 38#config/database.yml 39default: &default 40 adapter: mysql2 41 encoding: utf8mb4 42 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> 43 username: ユーザー名 44 password: 45 socket: /var/lib/mysql/mysql.sock 46

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

つalter database your_database default character set utf8mb4;

投稿2018/09/25 13:57

hichon

総合スコア5737

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kozica

2018/09/27 05:53

DB作成後に設定し直すのではなく、デフォルトで変更はできないのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問