表題の通りですが、WindowsでMySQLのDB環境を作るのに手間取ったので、まとめておきます。

主に使ったソフトウェアやOSは以下の通り。

  • OS:Windows10
  • Ruby:2.5.6
  • Rails:5.2.4
  • DB:MySQL 8.0.19

MySQLのインストール

Windows版のMySQLをインストールします。

こちらのページが非常に細かく手順が書かれているので、選択肢を参考にしてインストールします。

Windows 版 MySQL インストール手順

環境変数はこちらのページを参考にしてPathの値を設定します。

MySQLの初期設定と動作確認 - Windows環境

認証プラグインの変更

mysql -u root -pでMySQLにログインします。

mysql> select host, user, plugin from mysql.user;

を実行して認証プラグインを確認すると、以下のような結果が出てくると思います。

+-----------+------------------+-----------------------+
| host | user | plugin |
+-----------+------------------+-----------------------+
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session | caching_sha2_password |
| localhost | mysql.sys | caching_sha2_password |
| localhost | root | caching_sha2_password |
+-----------+------------------+-----------------------+

今回は、rootユーザを使いたいので認証プラグインを変更します。

mysql> alter user 'root'@"localhost" identified with mysql_native_password by 'パスワード';

念のため、一度ユーザを確認して変更できていることを確認します。

mysql> select host, user, plugin from mysql.user;

+-----------+------------------+-----------------------+
| host | user | plugin |
+-----------+------------------+-----------------------+
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session | caching_sha2_password |
| localhost | mysql.sys | caching_sha2_password |
| localhost | root | mysql_native_password |
+-----------+------------------+-----------------------+

rootの認証プラグインが変わっていることが確認できます。

プロジェクト作成

Railsでプロジェクトを作成します。

私の環境では何故かRails newでプロジェクトが作れなくなってしまったので、以下のコマンドでDBにMySQLを指定してプロジェクト作成。

rails new test-app -G -d=mysql

プロジェクトのフォルダに入ってbundleを実行。

cd test-app

bundle install

database.ymlを設定

config/database.ymlを設定します。

とりあえずusernameroot、パスワードはMySQLのインストールのときに設定したパスワードを、databaseにはtestを記載します。

モデル作成

モデルを作成します。今回はテストなので、名前とメールアドレスのセットを作ってみます。

以下のコマンドを実行してください。

rails generate model test name:string email:string

実行後、以下の2つのファイルができているかを確認してください。

db/migrate/XXXXXXXXXXXXXX_create_tests.rb

app/models/test.rb

データベースの作成

データベースを作るために以下のコマンドを実行します。

rails db:create

これで、database.ymlの情報をもとにデータベースが作られます。

テーブルの作成

モデルをマイグレーションしてテーブルを作成します。

rails db:migrate

これで、testデータベースにテーブルが作られました。

データベースとテーブルの確認

正しくデータベースとテーブルができているか確認をします。

mysql -u root -pでMySQLにログインしてください。

mysql> show databases;を実行して、データベース一覧を確認してください。

一覧が確認でき、「test」というデータベースができています。

次に、mysql> use test;を実行してtestデータベースを選択状態にしてください。

testsというテーブルができていることが確認できました。

最後に、mysql> show columns from tests;を実行して、テーブルのフィールドを確認してください。

nameemailのカラムができているのが確認できました。

最終更新:2020/2/5