12
16

More than 3 years have passed since last update.

WSL上でRuby on Rails + MySQLの環境づくり

Last updated at Posted at 2019-10-01

注意

この記事は古いのであまり参考にしないほうが良いです。
似たようなエラーがでたときの対処程度に使っていただければ...
(そのうち記事を削除する予定です)

はじめに と 注意

Ruby on Rails + MySQLの環境構築をしていく記事です。

先人様の記事の内容を主に進めていって、エラーが出たところの解決策を書いてます。

初記事なのでやさしい目で見てください。

背景

Rails + MySQL でアプリ作ってみたいけど環境構築で意味わかんないエラー出ちゃった。

全部Windowsのせいにしよう(逃避)。

でもmac持ってない......WSLならできるかな...?

(ちなみに過去にWSL上で開発環境整えようとして失敗した。)

対象

  • WSL上でRuby on Railsの開発をしたい!
  • SQLiteじゃなくてMySQLでやりたいけど環境構築わかんね!

という方向け。

環境

  • Windows 10 Home 64bit
  • WSL( Windows Subsystem for Linux ) Ubuntu 18.04.3 LTS

1. WSLにRuby on Rails環境を整える

さっそく他人様まかせで申し訳ないですが

とても、とても素晴らしい記事があるので
ほぼこれを参考にやっていきます...

※一部別の方法でインストールする部分があるのでリンク先とこの記事を見比べながら作業してください。
(一個一個のインストールに割と時間かかるので気長に待ちましょう。特にrubyのインストール)

少し変更を加える部分 (と軽いhelp)

「2. Node.jsを入れよう」部分

nodejsを導入する際の

sudo apt-get install npm

というコマンドだとnodeおよびnpmのバージョンが最新ではないためやり方を変更。

間違えて入れちゃったというひとも指示に従ってすれば大丈夫(たぶん)

さあ説明を読むぞって思ったひとにはごめんなさい。この記事が神。

- 続・WSL(Ubuntu)でnode.jsの開発をする準備

さっきのコマンドで入れちゃったって人は「削除する」って項目からやってください。

もう1つ

WSLを再起動とかするとnode -vをしたときにnot found エラーが起きるかも。
そういうときは

export PATH=$HOME/.nodebrew/current/bin:$PATH

を vim かなんかで~/.bashrcに追記して試してみてください。

vim で追記する方法は下の方。

「3. rbenvを入れよう」部分

たいしたことではないですが最後の方で

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

を ~/.bashrc に追記する(厳密には上の1行はすでに追記されているはず)手順があります。

「どうやって!?」と思った方は下の方に書いてある「.bashrcに追記ってどうするの!!」を見て追記してみてください。

「5. Rubyを入れよう」部分

本当に時間かかります。環境にもよると思うけれど僕は2~30分かかりました(笑)

解決策?

  • 普通は長くて10分くらいらしいのでいったん待ってみる。
  • "rbenv install ruby 遅い"でググって出てきたのを試す

BUILED ERROR!! となる人へ

僕も一度なりました。エラー文中に

Try ~~~ `apt -------` 

といった感じであったので(詳細なエラー文コピー取るの忘れてました;;)、

それに従ってコマンド実行すると治りました。

.bashrcに追記ってどうするの!!

下のコマンドで、vim で .bashrc を開いて一番下とかに追記していく。

vim ~/.bashrc

vim の使い方はこちらでどうぞ

- 知識0から始めるVim講座

2. Ruby on Rails + MySQL

Ruby on Railsの環境構築お疲れさまでした。

僕自身この記事を書きながらやっていたら3時間程度たっていました...笑

ということで次はMySQLです。

MySQLのインストール

まずはMySQLをインストールしていきます。が、ここでもとても良い記事を見つけました。

- WSLのUbuntu 18.04でMySQL 5.7をセットアップ

これ通りに行えばエラーなく行けるはずですが、

過去にMySQLいれたことある人や間違えちゃった人はエラーが起こるかも。(体験談)

僕の場合はWSL上からきれいにMySQLを消してもう一回やればいけました。

過去のMySQL関連のファイルとか消したくないって人以外は下記コマンドを実行しましょう。

sudo apt-get remove --purge mysql-*
sudo apt-get autoremove --purge 
sudo rm -r /etc/mysql
sudo rm -r /var/lib/mysql

MySQLが起動中だとうまく全ファイルを消せないので、

sudo service mysql stop

としてサーバを停止してから行ってください。
またサーバが止まらない!止められない!という方は
MySQLのプロセスを確認して

ps ax | grep mysql

でてきたプロセスを片っ端からkillしていけばサーバが停止します。

sudo kill プロセス番号

Railsと組み合わせる

MySQLのインストールが終わったのでRailsアプリケーションのデータベースをMySQLとして作っていきます。

まずはRailsで使うMySQLのアカウントを作ります!

rootでログインして、

 mysql -u root -p

現在あるアカウントをチェック

 select User,Host from mysql.user;

+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| debian-sys-maint | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+

Rails用のアカウントを作ってチェック

create user 'ユーザネーム'@'localhost' identified by 'パスワード';
select User,Host from mysql.user;

+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| debian-sys-maint | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| railsuser        | localhost |
| root             | localhost |
+------------------+-----------+

ちゃんと追加されました!

次はRails上でMySQLを使うためのgemをインストールしていきます。

gem install mysql2

しかしここでエラー

 ERROR: Error installing mysql2:
        ERROR: Failed to build gem native extension.
-省略-
mysql client is missing. You may need to 'apt-get install libmysqlclient-dev'  or 'yum install mysql-devel', and try again.
 -省略-

指示に従って、一応sudoをつけて...

 sudo apt-get install libmysqlclient-dev

もう一回..!

 $ gem install mysql2
Building native extensions. This could take a while...

...

Done installing documentation for mysql2 after 0 seconds
1 gem installed

通りました。

次にデータベースをMySQLに指定したRailsアプリケーションを作成。名前は適当。

 rails new mysql-app -d mysql

次にデータベース設定ファイルの書き換えをします。

Ruby on Railsの環境を構築したときにシンボリックリンクを設定したフォルダがあると思うのでそこに先ほど作ったRailsアプリケーションを移動。

最初からそこでrails newすればよかったのでは?

 mv アプリの名前 移動先 -r

vscodeを起動

ファイル > フォルダを開く > Railsアプリ(僕の場合mysql-app)

を選択してvscodeで開く。

config > database.yml を開いて自分の登録したユーザネームとパスワードを入力します。

default: &default
  adapter: mysql2
  encoding: utf8mb4
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: [ユーザネーム]
  password: [パスワード]
  socket: /var/run/mysqld/mysqld.sock

development:
  <<: *default
  database: mysql_app_development

test:
  <<: *default
  database: mysql_app_test

production:
  <<: *default
  database: mysql_app_production
  username: mysql_app
  password: <%= ENV['MYSQL_APP_DATABASE_PASSWORD'] %>

セーブ後データベースを作って

rails db:create

アプリケーションを起動して

rails s

ブラウザ(http://localhost:3000) で確認出来たら終了です!

お疲れさまでした。

a.jpg

参考
- Ruby on RailsでMySQLを使用・接続する際の手順と注意点
- RailsのDBを(初めから| |後から)MySQLに変更する

12
16
2

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
12
16