LoginSignup
0
0

More than 1 year has passed since last update.

[500 server error]Mac再起動後にSQLに接続できず、Laravelのプロジェクトをローカル環境で確認できなくなった時

Last updated at Posted at 2021-11-24

以前作成したLaravelのプロジェクトの修正を行おうとしていつも通りMAMPを起動してブラウザで表示しようとしたら、、、
スクリーンショット 2021-11-24 16.23.21.png
もういやだ
独学者にはこういうのが一番効きます。

開発環境

$ sw_vers
ProductName:    macOS
ProductVersion: 11.6
BuildVersion:   20G165
$ mysql --version
mysql  Ver 14.14 Distrib 5.7.35, for osx10.16 (x86_64) using  EditLine wrapper
$ php artisan --version
Laravel Framework 6.20.30

解決手順

とりあえず.envのデバッグ設定をオンにして解決手段を模索する。

.env
APP_DEBUG=true

するとこんな感じのエラーがブラウザに表示される

[2002] No such file or directory (SQL: select * from `users` where `id` = 1 limit 1) (View: /Applications/MAMP/htdocs/[Project_name]/resources/views/welcome.blade.php)

意外と単純な理由ってことがわかる。データベースへの接続がうまくいってないみたい。
ひとまずターミナルでMySQLへの接続を試みてみる。

$ mysql -u root -p
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'

まあそりゃ接続できないよね。
んでmysql.sockって何だ?と思ったけどどうやら英語で書いてある通りMac内のプログラムとMySQLを通信の処理をしてくれるいいやつらしい。
この仲介役みたいな人がいないからSQLに接続できないらしい。Macをシャットダウンしたときに解雇されたのか。かわいそうに。
だから以下のようにして新しく仲介役を雇用してやる必要があると。

$ touch /tmp/mysql.sock

備忘録:
touch・・・現在のディレクトリにとりあえず空のファイルを作ってあげるコマンド。

ここで権限のエラーが出ることがある

touch: /tmp/mysql.sock: Permission denied

その場合は

$ ls -l /tmp/mysql.sock

で権限を確認してやり、

$ sudo chown [username]:admin /tmp/mysql.sock

で[username]にパーミッションを与えてあげ、改めてtouchしてやる。

備忘録:
sudo・・・rootユーザーの権限が必要なコマンドを実行できるようになる。
chown・・・指定したファイルの所有権を変更するコマンド。

これで仲介役が雇え、MySQLの接続準備が整ったので、MySQLを再起動する。

$ mysql.server restart
 ERROR! MySQL server PID file could not be found!
Starting MySQL
. SUCCESS! 

ここのエラーはよくわからないが、MySQLが無事再起動できたようなので改めてブラウザでLaravelを起動してみるとうまくいっていることが確認できた。
初めてこういうふうになった時はめちゃくちゃググりまくって時間がかなりかかってしまったのでそういった方々の役に立てれば、、、!!!

まとめ

Laravelにブラウザで接続できなくなった時はまず.envファイルのdebugをオンにしてどこで接続がうまくいってないか確認する。

mysql.sockでMySQL接続ができないよと言われたら多分mysql.sockが消えてるので、適切な権限のもと新しくmysql.sockを作成してあげる。

mysqlを再起動してうまくいっていることを確認する。

人生がうまくいく。

参考

https://qiita.com/jonakp/items/477a18d4a94c01a31583

https://www.naka-style-blog.com/mysql-log-in-erorr/

コマンドラインの操作だったり、それらに付随するエラーだったりってなかなかとっつきにくくて難しいのでまだまだ勉強が必要だなと思った今日この頃。何か気になる点やご指摘等ございましたら教えていただけるとありがたいです。

0
0
0

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
0
0