LoginSignup
2
0

More than 1 year has passed since last update.

MAMP環境でのLaravelとMySQLの接続エラー

Posted at

今まではSQLiteを使用していましたが、今回はMySQLを使用することにしました。
しかし、開始早々接続エラーで苦戦したので、こちらに解決方法を記載しておきます。

環境

MAMP
OS:macOS
Laravel:8.51.0
PHP:7.4.12
MySQL:5.7.32

エラー画面

スクリーンショット 2021-07-25 10.20.52.png

phpmyadminでDBを作り、いざ接続しようとしたらこのエラーが出ました。
「Connection refused」ということで、うまく接続できていないようです。

どうやら.envファイルとdatabase.phpファイルの記述が間違えているようでした。

MAMPの情報を確認する

MAMPを起動した際に、こちらのページが表示されます。
スクリーンショット 2021-07-25 13.06.25.png
こちらのページの下の方に「MySQL」という項目があるのでクリックします。
スクリーンショット 2021-07-25 13.06.32.png
するとこちらの情報が出てきます。
このportUsernamePasswordSocketがこのあと必要になるので、メモ等に控えておきます。

.envファイルの修正

修正前の記述がこちらです。

.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_USERNAME=root
DB_PASSWORD=

この中のDB_PORT、DB_USERNAME、DB_PASSWORDを先ほどメモしたものに変更します。
そして新たにDB_SOCKETの記述を追加します。
DB_DATABASEは自分で作成したデータベース名を入れます。

修正したものがこちらです。

.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=8889
DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock
DB_DATABASE=データベース名
DB_USERNAME=root
DB_PASSWORD=root

database.phpの修正

次にdatabase.phpを修正します。
database.phpはconfigファイル内にあります。
その中でmysqlの記載部分を探します。

修正前がこちら。

.database.php
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),

第2引数部分を、メモした通りに変更します。
databaseは先ほど同様、自分で作成したデータベース名を入れます。

.database.php
'port' => env('DB_PORT', '8889'),
'database' => env('DB_DATABASE', 'データベース名'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', 'root'),

以上を変更して、再起動をしてから再接続したところ、無事DB接続することができました。

ちなみにポート番号を変更するには?

今回DBの接続するにあたり、ポートが初期値のままだったことに気づきました。
MAMPのデフォルトのポートはApacheが8888、MySQLが8889です。

変更するにはMAMPのPreferencesのこちらの画面で変更することができます。

一般的なポートの設定をするにはSetWeb&MySQL Ports toの「80 & 3306」を押します。
するとApacheが80、MySQLが3306に変わります。
そうすることで、ローカル環境で接続する際に、URLが「http://localhost:8888/」から「http://localhost/」に変わります。

ちなみにデフォルトの番号に戻したいときは「MAMP default」で元に戻ります。

ポート番号を変更した際は、上記の.envdatabase.phpの記載の修正を忘れずに。

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