概要
RailsのDBMSを初期設定のSQLiteからMySQLに変える方法です。
前提
- Rails: 4.2.0
- Ruby: 2.1.0p0
- OS: Amazon Linux
MySQL設定
インストール
初期設定
インストールしたら、MySQLを起動して初期設定をします。
# mysql -h mydbinstance.c7g4ipy6pxy7.ap-northeast-1.rds.amazonaws.com -P 3306 -u root -p mydb
作業ユーザー作成
次に作業ユーザーを作成します。
作業ユーザーはdevelopment、test、productionの3つ必要になります。
作業ユーザーはdevelopment、test、productionの3つ必要になります。
では、ターミナルでmysqlを起動してください。
で、作業ユーザーを作成します。ユーザー名は「'ユーザー名'@'localhost'」という書式になります。
で、作業ユーザーを作成します。ユーザー名は「'ユーザー名'@'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
http://54.65.164.15/homes
0 件のコメント:
コメントを投稿