今まではSQLiteを使用していましたが、今回はMySQLを使用することにしました。
しかし、開始早々接続エラーで苦戦したので、こちらに解決方法を記載しておきます。
環境
MAMP OS:macOS Laravel:8.51.0 PHP:7.4.12 MySQL:5.7.32エラー画面
![スクリーンショット 2021-07-25 10.20.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1159752/d53718ce-0701-ea79-64bc-f7b805e9822b.png)phpmyadminでDBを作り、いざ接続しようとしたらこのエラーが出ました。
「Connection refused」ということで、うまく接続できていないようです。
どうやら**.envファイルとdatabase.php**ファイルの記述が間違えているようでした。
MAMPの情報を確認する
MAMPを起動した際に、こちらのページが表示されます。 ![スクリーンショット 2021-07-25 13.06.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1159752/e397cd6e-5ea3-6184-d66f-5476df9a3ed5.png) こちらのページの下の方に「MySQL」という項目があるのでクリックします。 ![スクリーンショット 2021-07-25 13.06.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1159752/3bd69657-b0e7-7e8e-f639-5aa977d76ee9.png) するとこちらの情報が出てきます。 この**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**の記載の修正を忘れずに。