##初めに
rails newからrails sを実行するまでに数々のエラーと遭遇したのでメモ。
分かりづらいところ多々あると思いますが、エラーが解決し終わって書いてるので
どうかご容赦を。
温かい目で見守ってください。
##総括
大事なのは真摯にエラーと向き合うこと
エラー画面には解決のヒントがたくさん載ってること
検索の仕方を変えてみると意外とヒットする
英語で検索した方がヒントが多い
エラーが解決した時の喜びは大きい。
(難易度の高いゲームをクリアした時の喜びに近い)
ググる方法は以下の記事が大変参考になりました!
https://qiita.com/y_tom/items/1b54d4e1a9a5f3fab402
##開発環境
MacBook Pro
ruby2.6.6
rails6.1.1
mysql8.0
##エラー①
rails new を実行
gem nokogiri で問題発生(その時のエラー画面は残し忘れました)
https://qiita.com/dskst/items/b1f073fcffeca3bc9fc6
https://nokogiri.org/tutorials/installing_nokogiri.html#other-installation-scenarios
この記事を参考にエラー解決に挑戦
作者と同様に〇〇やってみた、を一つ一つ実行
結果
sudo NOKOGIRI_USE_SYSTEM_LIBRARIES=1 gem install nokogiri -- --use-system-libraries --with-iconv-dir="$(brew --prefix libiconv)" --with-xml2-config="$(brew --prefix libxml2)/bin/xml2-config" --with-xslt-config="$(brew --prefix libxslt)/bin/xslt-config"
を実行することにより解決
##エラー②
改めてrails new を実行
エラー画面を読むとwebpackerに問題あり?
と読めたがyarnがないのが問題だと気づく。
https://qiita.com/yokota02210301/items/293edf9e730f98fe633d
https://qiita.com/NaokiIshimura/items/8203f74f8dfd5f6b87a0
この2つの記事を参考にyarnのインストール、webpackerの再インストールを実行
.confingの権限をroot → user に変える作業も必要
##エラー③
rails new を実行 → 作成できた!
rails s を実行して画面が出るか確認 → エラー
Access dinied 'root'@'localhost'(passward: yes)
の問題
passwordが間違ってますよ、って言ってるみたいです。
rootのpasswordの再設定を試みる
https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html
kill `cat /mysql-data-directory/host_name.pid`
はエラーになって弾かれたので、
sudo kill `cat /mysql-data-directory/host_name.pid`
を実行 → 出来た!
続いて、
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
を実行するも、ALTER がcommand not found
で弾かれる。(UPDATEも同様)
https://itips.krsw.biz/mac-zsh-command-not-found-error-reason-and-solution/
https://qiita.com/iwaseasahi/items/6e00883ccd0864ede17e
この記事を参考に
コマンド実行ファイルと検索パスを確認
どちらも異常なし。
usr/local/bin/rbenv
の中に
!/usr/bin/env bash の記述があったので
shellをzshからbashに切り替えて試行
それでもcommand not found
結局、mysqlを再インストールしました。
mysqlの初期設定でパスワードをコピペして実行すると弾かれる、らしい。
その時は再インストールするしかないみたい。
##エラー④
rails s を実行
permisson denied
となったので
root → user
に権限を変更
##エラー⑤
rails s を実行
load error
が発生
そしてなぜかMySQLにアクセス出来なくなってる
https://qiita.com/carotene4035/items/e00076fe3990b9178cc0
この記事と同様の問題だった。
.pidファイルを作成
mysql.server restart
で解決
##エラー⑥
rails s を実行
Access denied for user 'blog'@'localhost' to database 'blog_development'
が発生。
mysqlリファレンスを見て要因を探ったが、解決に至らず。
そもそも、アクセス先を作ってないからでは?
という仮説に行き着く(ようやく)
rails g model(モデル名)
rails db:migrate
を実行
##エラー⑦
やっぱりエラー。
user'blog'に権限を付与してなかったので
mysql -u root -p
mysql>GRANT ALL PRIVILEGES ON *.* TO 'blog'@'localhost';
で権限を全て付与。
##エラー⑧
rails db:migrateを実行、以下のエラー。
ActiveRecord::NoDatabaseError: Unknown database 'vegtablelife_development'
rails db:create
rails db:migrate
rails s
感動!!!