rails new アプリ名 -d mysql で発生した ERROR! The server quit without updating PID file
やったこと
$ rails new sample-app -d mysql
で新規プロジェクトを作成しようとした
エラー
以下のエラーでプロジェクトの作成ができなかった
Starting MySQL
./usr/local/Cellar/mysql/8.0.19/bin/mysqld_safe: line 144: /usr/local/var/mysql/ユーザーMBP.err: Permission denied
rm: /usr/local/var/mysql/ユーザーMBP.pid: Permission denied
2020-03-29T03:04:45.6NZ mysqld_safe Fatal error: Can't remove the pid file:
/usr/local/var/mysql/ユーザーMBP.pid.
Please remove the file manually and start /usr/local/Cellar/mysql/8.0.19/bin/mysqld_safe again;
mysqld daemon not started
/usr/local/Cellar/mysql/8.0.19/bin/mysqld_safe: line 144: /usr/local/var/mysql/ユーザーMBP.err: Permission denied
ERROR! The server quit without updating PID file (/usr/local/var/mysql/ユーザーMBP.pid).
調べたこと
- ERROR! The server quit without updating PID file
試したこと(別エラー発生)
-
mysqlに関連するファイルの権限を変更 → 再度
rails new
→別エラーでプロジェクト作成が中断される//mysql関連のファイル権限を変更する $sudo chown -R _mysql:_mysql /usr/local/var/mysql //railsアプリケーション再作成を試みる $rails new sample-app -d mysql # →さっきと違うエラーで作成が中断された(pidファイルが存在しないという旨のエラーが発生)
rails new アプリ名 -d mysql で発生した ERROR! The server quit without updating PID file (/usr/local/var/mysql/*.local.pid).
やったこと
$ rails new sample-app -d mysql
で新規プロジェクトを作成しようとした
エラー
mysql関連のファイルである pid ファイル が存在してない旨のエラー
調べたこと
- ERROR! The server quit without updating PID file (/usr/local/var/mysql/*.local.pid).
試したこと
-
pidファイルを作成 →
rails new
→ pidファイルがないというエラーが続く//pidファイルを手動で作成 $ /usr/local/var/mysql/mysql > touch /usr/local/var/mysql/自分のユーザー名.local.pid //railsアプリケーション再作成を試みる $ rails new sample-app -d mysql # →さっきと同じエラーで中断
-
mysql関連のlocalファイルを削除 → mysql再インストール
//localファイル削除 $ sudo rm -rf /usr/local/mysql $ sudo rm -rf /Library/StartupItems/MYSQL $ sudo rm -rf /Library/PreferencePanes/MySQL.prefPane $ sudo rm -rf /Library/Receipts/mysql-.pkg $ sudo rm -rf /usr/local/Cellar/mysql* $ sudo rm -rf /usr/local/bin/mysql* $ sudo rm -rf /usr/local/var/mysql* $ sudo rm -rf /usr/local/etc/my.cnf $ sudo rm -rf /usr/local/share/mysql* $ sudo rm -rf /usr/local/opt/mysql* $ sudo rm -rf /usr/local/mysql* $ sudo rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist $ sudo rm -rf /Library/StartupItems/MySQLCOM $ sudo rm -rf /Library/PreferencePanes/My* //MySQL再インストール $ brew install mysql
-
mysqlサーバーの再起動
-
上記でMySQL再インストール後に「MySQL起動しなきゃ」と思い、mysqlサーバー起動を試みる → MySQLサーバー起動成功
//MySQLサーバースタート $ mysql.server start # → MySQLサーバー起動成功!
-
mysqlサーバーの起動に成功しプロジェクトの作成ができるようになったが...その後行うrails db:create
で以下のエラーが発生
rails db:create 時に発生した LoadError: dlopen...
やったこと
$ rails new sample-app -d mysql //railsプロジェクト新規作成
$ cd sample-app //プロジェクト内に移動
$ rails db:create //プロジェクトのデータベースを作成
# → ここで「LoadError: dlopen」...etc... 的なエラーが発生
エラー
LoadError: dlopen(/Users/(ユーザー名)/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/mysql2-0.5.2/lib/mysql2/mysql2.bundle, 9): Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
Referenced from: /usr/local/opt/mysql@5.6/lib/libmysqlclient.18.dylib
Reason: image not found - /Users/(ユーザー名)/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/mysql2-0.5.2/lib/mysql2/mysql2.bundle
/Users/(ユーザー名)/projects/(アプリ名)/config/application.rb:7:in `<top (required)>'
/Users/(ユーザー名)/projects/(アプリ名)/Rakefile:4:in `require_relative'
/Users/(ユーザー名)/projects/(アプリ名)/Rakefile:4:in `<top (required)>'
/Users/(ユーザー名)/.rbenv/versions/2.5.1/bin/bundle:23:in `load'
/Users/(ユーザー名)/.rbenv/versions/2.5.1/bin/bundle:23:in `<main>'
(See full trace by running task with --trace)
調べたこと
- LoadError: dlopen(*): Library not loaded: *
試したこと(別エラー発生)
- brew upgradeでパッケージのアップグレードを試みる→xcrun関連のエラーでアップグレードが失敗
$ brew upgrade
# → xcrun関連のエラーが発生し、upgarede失敗
brew upgrade 時に発生した xcrun: error
やったこと
$ brew upgrade
エラー
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
調べたこと
- xcrun: error: invalid active developer path *
試したこと
- x-codeのツールの再インストール → その後
brew upgrade
//xcodeのインストール
$ xcode-select --install
//brew upgrade
$ brew upgrade
# → 成功
エラーと解決まとめ
## railsアプリ作成時、DBMSをmysqlに指定しエラー ############################################
$ rails new sample-app -d mysql //pidファイルがないと言われmysqlエラーが発生する
【解決手順】
1. mysql関連ファイルの権限変更
2. mysql関連のlocalファイルの削除
3. mysqlの再インストールとmysqlサーバーの再起動 → これで解決!
## railsアプリ内での db createエラー ######################################################
$ rails new sample-app -d mysql //アプリ作成
$ cd sample-app //上記で作成したアプリのディレクトに移動
$ rails db:create //LoadError: dlopen...的なエラーが発生しデータベース作成できず
【解決手順】
1. Homebrewの更新 (brew upgrade) → 新たに別のエラーが発生(xcrunエラー)
## brew upgrade 時の xcrun: error #######################################################
$ brew upgrade //xcrunエラー発生
【解決手順】
1. xcodeの再インストール(xcode-select --install)
その後...
mysqlの初期設定を行い、root以外のユーザーを作成。
無事に作成されたsample-app
内のconfig/database.yml
をsqlite
からmysql
のものに変更し、rails db:create
を実行 ...無事に通り、scaffold利用しtweet
モデルを作成。
rails db:migrate
後、localhost:3000/tweets
に接続し動作を確認しようとしたところ...
全く別のエラーに出くわすことになるのだった...
「なぜだ...先ほどmysqlの再インストールをする前にsqliteのままscaffoldで作成したときは、ちゃんと表示されていたのに...!」
...
このエラーとの奮闘記が気になった方はこちらへどうぞ。(現在qiita投稿中...)
余談
この記事は各手順でそれぞれ別のエラーに見舞われており、全く同じ状況でエラーが発生している方も少ないのではと思っております。またその影響で一つ一つのエラー解決に対しては、見にくい記事になってしまったと反省もしております。
ただ全体を通して書き起こすことは自分にとってはためになるものだと実感しており、
自己満足の記事になることを、ご了承いただければ幸いです。
またこの記事を参考にしてくださる方がいらっしゃいましたら、
それぞれのエラーで「何が起きていて、どの部分が問題なのか」を調べていけると、問題の解決の糸口につながるかと思いますので、
この記事だけでおこなっている内容を鵜呑みにせず、公式ドキュメントや最新の記事を参照してみることも良いかと思います。
実は、その後...で発生したscaffold後のエラーについても今回のエラー解決で実行したxcodeのインストール(xcode-select --install)
が原因でした...。
「何か一つが治ったらまた別の何かがエラーになる」なんてことは皆さん日常茶飯事だと思っておりますが、
その過程を記録することで「何が原因で、どのエラーが発生したのか」を把握することができるため、今後のエラー解決に役立つのでは感じております。
この記事が誰かのお役に立つ日が来れば幸いです。