2015年2月3日火曜日

Rails on AWS MySQLの設定

概要

RailsのDBMSを初期設定のSQLiteからMySQLに変える方法です。


前提

  • Rails: 4.2.0
  • Ruby: 2.1.0p0
  • OS: Amazon Linux

MySQL設定

インストール

MySQLを公式サイトからダウンロードします。

初期設定

インストールしたら、MySQLを起動して初期設定をします。

# mysql -h mydbinstance.c7g4ipy6pxy7.ap-northeast-1.rds.amazonaws.com -P 3306 -u root -p mydb

作業ユーザー作成

次に作業ユーザーを作成します。
作業ユーザーはdevelopment、test、productionの3つ必要になります。
では、ターミナルでmysqlを起動してください。
で、作業ユーザーを作成します。ユーザー名は「'ユーザー名'@'localhost'」という書式になります。

mysql> create user test identified by 'パスワード1';
mysql> create user development identified by 'パスワード1';
mysql> create user production identified by 'パスワード1';

作成したユーザーの確認は以下のコマンドで確認できます。
mysql> select User,Host from mysql.user;

以下のコマンドで作成したユーザーに権限を付与します。
mysql> grant all on *.* to '[ユーザー名]'@'localhost'


データベースを作成する。
mysql> CREATE DATABASE test CHARACTER SET utf8;
mysql> CREATE DATABASE development CHARACTER SET utf8;
mysql> CREATE DATABASE production CHARACTER SET utf8;
mysql> show databases;

Mysql2のインストール

$ sudo yum install mysql-devel
$ gem install mysql2

Rails設定

まず、Railsアプリを作成します。


-d mysqlとオプションを指定し、デフォルトDBMSをMySQLに変更します。

$ rails new [アプリ名] -d mysql

「{RailsRoot}/config/database.yml」を開きます。
[アプリのルート]/config/database.yml
# コメント略

development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: development *データベース
  pool: 5
  username: root
  password: *パスワードを設定
  host: mydbinstance.xxxxxxxxxx.ap-northeast-1.rds.amazonaws.com
test:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: test *データベース
  pool: 5
  username: root
  password: *パスワードを設定
  host: mydbinstance.xxxxxxxxxx.ap-northeast-1.rds.amazonaws.com

production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: production
  pool: 5
  username: root
  password: *パスワードを設定
  host: mydbinstance.xxxxxxxxxx.ap-northeast-1.rds.amazonaws.com



以下修正を行う。

  • development、test、productionのユーザー名とパスワードを「username」と「password」に設定する。
  • hostもrdsのエンドポイントに修正する。
  • databaseの名前も修正する。
そんで、$ rake db:migrateします。
これでOKのはず
適当にテストしたい方は以下のようにscaffold使って試してみると良いでしょう。
$ rake db:create
$ rails g scaffold home name:string body:text email:string
$ rake db:migrate

以下にアクセスしてみる。

http://54.65.164.15/homes


0 件のコメント:

コメントを投稿