[Laravel] 마이그레이션이 안 되는 건 환경 변수 오류 때문일 수 있어요!어떤 잘못.엔비랑 뒤돌아봐.
고맙습니다.
Laravel에서 개발할 때는 반드시
php artisan migrate
명령을 사용합니다.나도 여러 차례 보살핌을 받은 명령이다.이번에는 실행
php artisan migrate
시 발생한 오류와 함께 해결 방안을 쓰고 싶습니다.오류 1: Docker의 경우
오류 정보
Illuminate\Database\QueryException : SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_schema.tables where table_schema = sample and table_name = migrations and table_type = 'BASE TABLE')
at /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Connection.php:665
661| // If an exception occurs when attempting to run a query, we'll format the error
662| // message to include the bindings with SQL, which will make this exception a
663| // lot more helpful to the developer instead of just the database's errors.
664| catch (Exception $e) {
> 665| throw new QueryException(
666| $query, $this->prepareBindings($bindings), $e
667| );
668| }
669|
Exception trace:
1 PDOException::("SQLSTATE[HY000] [2002] Connection refused")
/var/www/html/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70
2 PDO::__construct("mysql:host=127.0.0.1;port=3306;dbname=sample", "root", "password", [])
/var/www/html/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70
Please use the argument -v to see more details.
Whoops\Exception\ErrorException : Module 'zip' already loaded
at Unknown:0
1|
Exception trace:
1 {main}()
/var/www/html/artisan:0
솔루션: DB_HOST 설정을 재평가합니다.
.env 파일의 DB_HOST 값을 확인하는 경우
DB_HOST=127.0.0.1
입니다.도커는 DB로 설정된 용기 이름을 필요로 하는 것으로 조사됐다.【修正後】
DB_HOST=mysql
이렇게 하면 해결된다.오류2: 연결이 거부됨
Illuminate\Database\QueryException : SQLSTATE[HY000] [1049] Unknown database 'sample' (SQL: select * from information_schema.tables where table_schema = sample and table_name = migrations and table_type = 'BASE TABLE')
at /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Connection.php:665
661| // If an exception occurs when attempting to run a query, we'll format the error
662| // message to include the bindings with SQL, which will make this exception a
663| // lot more helpful to the developer instead of just the database's errors.
664| catch (Exception $e) {
> 665| throw new QueryException(
666| $query, $this->prepareBindings($bindings), $e
667| );
668| }
669|
Exception trace:
1 PDOException::("SQLSTATE[HY000] [1049] Unknown database 'sample'")
/var/www/html/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70
2 PDO::__construct("mysql:host=mysql;port=3306;dbname=sample", "root", "password", [])
/var/www/html/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70
Please use the argument -v to see more details.
솔루션: DB_DATABASE 값 확인
오류 메시지에서 데이터베이스 "sample"이 존재하지 않습니다알겠습니다.
이 경우 연결할 데이터베이스의 이름을 다시 지정해야 합니다.
내 경우 DB'bookmark'에 연결하고 싶습니다.env 파일의 해당 부위는 다음과 같이 수정되었습니다.
【修正後】
DB_DATABASE=bookmark
이렇게 하면 연결할 수 있다.오류 3: 수정 후 연결할 수 없습니다.
해결 방안: 여러 개의 env 파일이 있는지 확인
이 오류(?)일어날 때 제일 반했어.웃음 캐시를 수정하든 삭제하든 오류가 발생하기 때문에 파일을 다시 확인하기 위해 파일 이름으로 검색한 결과 두 개의'.env'가 발견되었습니다.
필요 없는 env 파일을 삭제하면 순조롭습니다.
migrate가 성공하면 맑아지고 아래 상태가 될 거예요.이게 똑딱똑딱 실행되는 느낌이 편하죠?
root@592de04c5bde:/var/www/html/web# php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table (0.03 seconds)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table (0.01 seconds)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated: 2019_08_19_000000_create_failed_jobs_table (0.01 seconds)
요약: 오류 정보를 읽고 env 파일을 수정합니다.
이러면 마이그레이션이 잘 안돼.env 파일의 값, 즉 환경 변수가 자주 틀리는 것 같습니다.DB가 없으면 개발에 착수할 수 없기 때문에 이곳을 무사히 넘고 싶다.그럼!
Reference
이 문제에 관하여([Laravel] 마이그레이션이 안 되는 건 환경 변수 오류 때문일 수 있어요!어떤 잘못.엔비랑 뒤돌아봐.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/wallkickers/items/47efb41dd200722a98fe텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)