MAMP環境でのLaravelとMySQLの接続エラー
今まではSQLiteを使用していましたが、今回はMySQLを使用することにしました。
しかし、開始早々接続エラーで苦戦したので、こちらに解決方法を記載しておきます。
環境
MAMP
OS:macOS
Laravel:8.51.0
PHP:7.4.12
MySQL:5.7.32
エラー画面
phpmyadminでDBを作り、いざ接続しようとしたらこのエラーが出ました。
「Connection refused」ということで、うまく接続できていないようです。
どうやら.envファイルとdatabase.phpファイルの記述が間違えているようでした。
MAMPの情報を確認する
MAMPを起動した際に、こちらのページが表示されます。
こちらのページの下の方に「MySQL」という項目があるのでクリックします。
するとこちらの情報が出てきます。
このport、Username、Password、Socketがこのあと必要になるので、メモ等に控えておきます。
.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は自分で作成したデータベース名を入れます。
修正したものがこちらです。
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の記載部分を探します。
修正前がこちら。
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
第2引数部分を、メモした通りに変更します。
databaseは先ほど同様、自分で作成したデータベース名を入れます。
'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」で元に戻ります。
ポート番号を変更した際は、上記の.envとdatabase.phpの記載の修正を忘れずに。
Author And Source
この問題について(MAMP環境でのLaravelとMySQLの接続エラー), 我々は、より多くの情報をここで見つけました https://qiita.com/notosan_as/items/2ba3289fd61455692865著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .