グロースエンジニアのブログ

Ruby on Rails エンジニアです!開発に当たって勉強したことをまとめていこうと思います!

【Ruby on Rails】データベースを sqlite から mysql に変える

何となくデフォルトのsqliteを使っとったけど、ふとmysqlってどうやって設定するんじゃろ?って思って設定を変更したのでメモ!

 

ついでにユーザーも作成してみたので、その記録をしておきます。
mysql はすでにinstallされています。

 

Gemfile の修正

まず Gemfile の sqlitemysql に修正。

# 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

思ったより簡単に設定できた!
後は本番で使うときにどうなるかだな...