【Laravel6】MAMP環境でMySQLと接続する方法【ハイパー丁寧に解説】
Laravel6のローカル環境を構築する方法っていくつかありますよね。
僕は以前、Dockerで開発していたのですが、何だか個人レベルの開発ならMAMPで十分かなーと最近思い始めました。笑
ただMAMPのMySQLに接続できずに軽くハマってしまったので、今後ハマる人がいないように接続方法を記しておきます。
【開発環境】
・macOs Catalina 10.15.4
・Laravel Framework 6.18.26
・MAMP 5.7
MAMPのMySQLに接続出来ていない時に出るエラー
「php artisan migrate」を実行して、下記のどちらかのエラーが出ている場合上手くMAMPのSQLと接続出来ていないという状態です。(これ以外のエラーもあるかも)
どっちのエラーもこの記事通りに環境設定をしていけば解決出来ますので、サクサクと進んでいきましょう。
Undefined index: database
SQLSTATE[HY000] [1045] Access denied for user ''@'localhost' (using password: NO) (SQL: select max(`batch`) as aggregate from `migrations`)
phpmyadminのデータベースを確認
まずはphpMyadminを開いて、接続したいデータベース名を確認しましょう。
「open webstart page」でMAMPのページを開きます。
「TOOLS」の「PHPMYADMIN」をクリックします。
上記がデータベース一覧です。
接続したいデータベース名を確認しておきましょう。
今回は「sample_project」に接続することにします。
MAMPの環境設定変数を確認する
「open webstart page」で開いたMAMPのページの真ん中の方に下記の「MySQL」があるはずなので、そちらを確認します。
.envを編集する
.envファイルは隠しファイルなので、もしかするとデフォルトでは表示されていないかもです。(隠しファイル表示とかでググって見てください。)
.envはデフォルトでは下記のようになっていると思います。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_USERNAME=root
DB_PASSWORD=
これをさっき確認した環境変数に書き換えます。
僕の場合は下記の通りです。(「DB_DATABASE」の所は接続したいデータベース名にしてください。今回は「sample_project」としました。)
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=sample_project
DB_USERNAME=root
DB_PASSWORD=root
DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock
database.phpを編集する
app/config/database.phpを編集します。
デフォルトでは下記のようになっているはず。
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
これをまた、さっき確認した環境変数に書き換えます。
僕の場合は下記の通りです。(「database」の所は接続したいデータベース名にしてください。今回は「sample_project」としました。)
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'sample_project'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', 'root'),
これにて環境変数の設定は終了です。
「php artisan migrate」で無事実行されることを確認してみましょう。
よし、これでまた開発をサクサクと進めることが出来ますね笑
それではまた(*´ω`*)ノ