Laravel에서 MySQL에 연결 오류를 발생시키지 않기 위해 [MAMP 환경]

2954 단어 MySQLmamp라라벨


~ 일의 경위 ~

인증 기능을 php artisan make:auth로 만들고 migrate로 인증 테이블을 만들려고 합니다.

php artisan migrate에서 오류가 발생했습니다 ...
SQLSTATE[HY000] [2002] Connection refused 
(SQL: select * from information_schema.tables where table_schema = 
laravel and table_name = migrations and table_type = 'BASE TABLE')

현재 Laravel 공부중입니다만, 지금까지 SQLite를 사용하고 있어, 이번은 기본적으로 MySQL에 연결하려고 하면, 조금 고전했습니다.

원인은 .envとdatabase.phpの記述ミス 였습니다만, 같은 함정에 빠지는 분에게 참고가 된다고 생각합니다.

환경
OS : macOS Mojave 10.14.5
MAMP : 5.3
Laravel : 5.8.x

MAMP가 mac에 들어있는 전제로 진행합니다.

순서 1: phpmyadmin으로 데이터베이스 작성



phpmyadmin으로 DB를 만들어 둡니다.
이번은 Laravel 로 했습니다.

순서 2:MAMP의 정보를 앞두고



앱을 시작하면 열리는 웹페이지를 타고 있네요.



이 소켓이 간이됩니다.

그럼 먼저 .env에서 수정하자.

3단계: .env 수정



기본값은 다음과 같습니다.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_USERNAME=root
DB_PASSWORD=

이것을 MAMP의 정보를 바탕으로 다음과 같이 바꿉니다.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=8889
DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=root

DB_SOCKET가 새롭게 들어가, 그 외 각종 정보도 바꿉니다.DB_DATABASE는 방금 만든 Laravel 데이터베이스를 지정합니다.

그 다음은 database.php입니다.

4단계: database.php 수정



기본 database.php는 다음과 같습니다.
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),

그것을 다음과 같이 바꿉니다.
'port' => env('DB_PORT', '8889'),
'database' => env('DB_DATABASE', 'laravel'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', 'root'),

이상이 됩니다.
php artisan migrate 로 테이블을 만들 수 있을까...



했어.

확인을 위해 phpmyadmin을 엽니다.



테이블이 생성됨 = DB에 연결됨

좋았어요 😌

좋은 웹페이지 즐겨찾기