表題の通りですが、WindowsでMySQLのDB環境を作るのに手間取ったので、まとめておきます。
主に使ったソフトウェアやOSは以下の通り。
- OS:Windows10
- Ruby:2.5.6
- Rails:5.2.4
- DB:MySQL 8.0.19
目次
MySQLのインストール
Windows版のMySQLをインストールします。
こちらのページが非常に細かく手順が書かれているので、選択肢を参考にしてインストールします。
環境変数はこちらのページを参考にしてPathの値を設定します。
認証プラグインの変更
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を設定します。
とりあえずusername
はroot
、パスワードは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;
を実行して、テーブルのフィールドを確認してください。
name
とemail
のカラムができているのが確認できました。
最終更新:2020/2/5