69
72

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

EC2で作成したrailsサーバーでRDSを使う方法

Last updated at Posted at 2013-08-02

EC2上に構築したrailsサーバーからMYSQLのアプリを作ってRDSに接続する方法

[前提条件]
EC2上にrailsサーバーが構築されている。
RDSのインスタンスを確保している。

##gem mysqlのインストール
yumでライブラリを取得した後にgemのオプションで指定する必要がある。

sudo yum -y install libmysqld-dev
gem install mysql2 -- --with-mysql-config=/usr/bin/mysql_config

##mysqlを使ったrailsアプリ作成

rails new myapp3 -d mysql

##JavaScriptを有効にする
後で使うスカフォードを有効にするため。

cd myapp
vi Gemfile
gem 'therubyracer', :platforms => :rubyをコメントイン
bundle install

##接続設定の変更
database.ymlを接続設定の部分を以下のように書き換える。

vi config/database.yml
config/database.yml
development:
  adapter: mysql
  encoding: utf8
  reconnect: false
  database: XXXXX
  pool: 5
  username: XXXXX
  password: XXXXX
  socket: /var/lib/mysql/mysql.sock
  host: XXX.XXXXXXXX.us-west-2.rds.amazonaws.com

##スカフォードを使ってアプリを作る

rails generate scaffold cat name:string point:string
rake db:create
rake db:migrate

これでRDS側で確認するとテーブルができていれば設定完了。

##補足
このままだと日本語が正しく入力できないのでRDStoolkitを使って文字コードをutf8に変更する。
RDSに割り当てたパラメーターグループの設定を変更する。
defaultを割り当てた場合は変更ができないのでインスタンスを作り直す必要がある。

rds-modify-db-parameter-group  パラメーターグループ名 -p "name=character_set_database, value=utf8, method=immediate" --region us-west-2
rds-modify-db-parameter-group  パラメーターグループ名 -p "name=character_set_client, value=utf8, method=immediate" --region us-west-2
rds-modify-db-parameter-group  パラメーターグループ名 -p "name=character_set_connection, value=utf8, method=immediate" --region us-west-2
rds-modify-db-parameter-group  パラメーターグループ名 -p "name=character_set_results, value=utf8, method=immediate" --region us-west-2
rds-modify-db-parameter-group  パラメーターグループ名 -p "name=character_set_server, value=utf8, method=immediate" --region us-west-2
rds-modify-db-parameter-group  パラメーターグループ名 -p "name=skip-character-set-client-handshake, value=TRUE, method=pending-reboot" --region us-west-2

※us-west-2はリージョン

character_set_databaseの項目だけは変更できなかったので以下のコマンドのみmysql上で実行する。

SET character_set_database = 'utf8'

このあとデフォルトで作成されたデータベースをいったん削除して作り直す。

69
72
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
69
72

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?