15
6

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.

0からDB入門!!RailsのDBをMySQLに変更する方法

Last updated at Posted at 2018-07-18

こんにちは。
fumimi(@fumimi)です。

RailsのDB(データベース)をMySQLに変更することは初心者の方が苦戦する項目の1つだといえます。

  • DBってなに??
  • MySQLってなに??
  • RailsのDBってどうやって変更するの??

という方を対象にRailsのDBをMySQLに変更する方法を解説します。

DBコンソールの立ち上げからなるべく簡単に説明しますので初心者の方もコマンドやソースコードが書かれている箇所は上から順番に読み進めてみてください。

DBやMySQLの解説を行ってから簡単なRailsのサンプルアプリケーションを作成しながらデフォルトのSQLiteからMySQLへデータベースを変更する方法を解説していきます。

理解しながらコマンドを実行したりソースコードを修正しながらやるとおよそ8分程度で読めます。

環境

macOS High Sierra
Ruby 2.5.1
Rails 4.1.0

DBとは??

DBとは 「追加、取得、削除、更新をしやすい形に整理されたデータの集まり」 です。

MySQLとは??

MySQLとは、世界で最も多く使われているデータベースです。

特徴は、検索のスピードが高速で機能もすぐれていることです。そのためMySQLを使うことで、ユーザーからのアクセスが多い大規模なアプリケーションに対応することができます。

データベースは高機能なものだと有料の場合もありますが、MySQLはオープンソースであるため、他のデータベースよりも低コストで使うことができます。

また、オープンソースなので非商用利用であれば無償で使用できるため、初心者でも簡単に利用できます。

MySQL設定

多くの人がログインする可能性のあるデータベースは、常にrootユーザーのアカウントを使うことはセキュリティ上よくありません。

そのためデータベースを操作する場合には、特定のユーザーのみが特定のデータベース使えるように作業ユーザーを新しく作ることが一般的です。

それでは、作業ユーザーの作成方法から確認します。

MySQLの新規ユーザー作成と権限付与については以下の記事をご確認ください。

0からDB入門!!MySQLで新規ユーザー作成と権限付与

アプリケーションの新規作成

「アプリケーションの新規作成の方法はわかる」
「MySQLに変更の方法だけしりたい」
という方はこのセクションは読み飛ばしてください。

サンプルアプリケーションの作成を行います。

ターミナル
$ rails new _4.1.0_ Book

Rails設定

mysql2 というGemをインストールします。

Gemfile
gem 'mysql2'

Gemのインストールを実行します。

ターミナル
$ bundle update
$ bundle install

RailsのDBの設定ファイルである database.yml というファイルを修正します。 database.ymlconfig というディレクトリの中にあります。 []で囲まれている箇所はご自身の環境によって任意で修正してください。また、必要であればtest環境とproduction環境も同様にファイルを修正してください。

/config/database.yml
development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: [database]
  pool: 5
  username: [username]
  password: [password]
  host: localhost

テスト

ターミナル
$ rails g scaffold book title:string detail:string
$ rake db:migrate

migrate してうまくいけば完了です。

15
6
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
15
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?