【Ruby on Rails】データベースを sqlite から mysql に変える
何となくデフォルトのsqliteを使っとったけど、ふとmysqlってどうやって設定するんじゃろ?って思って設定を変更したのでメモ!
ついでにユーザーも作成してみたので、その記録をしておきます。
※ mysql はすでにinstallされています。
Gemfile の修正
まず Gemfile の sqlite を mysql に修正。
# gem 'sqlite3'
gem 'mysql2'
ターミナルから bundle install で完了!
mysql のセットアップ
'config/database.yml' を以下に修正。
default: &default
adapter: mysql2
encoding: utf8
pool: 5
username: root
password:
socket: /tmp/mysql.sock
development:
<< default
database: blog_development
test:
<< default
database: blog_test
production:
<< default
database: blog_production
ユーザーの設定
root ユーザーって何となく抵抗があったので、別途ユーザーを作成した。
ターミナルから'mysql -uroot'でmysqlに入ってユーザーを作成。
1行目がユーザー作成コマンド。最初の'develop'がユーザー名で、次の'develop'がパスワードの設定。
2行目、3行目がそのユーザーが作ったデータベースにアクセスできるようにするコマンド。
mysql> create user 'develop'@'localhost' identified by 'develop';
mysql> GRANT ALL PRIVILEGES ON blog_development.* TO develop@localhost IDENTIFIED BY 'develop' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON blog_test.* TO develop@localhost IDENTIFIED BY 'develop' WITH GRANT OPTION;
で、'config/database.yml'のdefault部分を以下に書き換えてすべて完了!
default: &default
adapter: mysql2
encoding: utf8
pool: 5
username: develop
password: develop
host: localhost
socket: /tmp/mysql.sock
思ったより簡単に設定できた!
後は本番で使うときにどうなるかだな...