Docker에서 시작한 Lumen(Laravel) + mysql로 마이그레이션을 하면 SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client 에러가 발생한다
참고 사이트
【Laravel】MySQL 8에서 migration시에 에러가 나왔을 때의 대처 방법
htps : // 타카키 씨. 코 m / ぁらゔぇl - mysql - 8-mi g 라치 온 - 에로 r 훗 x /
상황
Docker에서 시작한 Lumen(Laravel) + MySQL로 Lumen 컨테이너에 들어가기
다음 명령 입력
Lumen_cmdphp artisan migrate
그 후, 다음과 같이 에러가 발생한다.
Docker 코드 (MySQL)
MySQL Dockerfile 코드는 다음과 같습니다
DockerfileFROM mysql:8.0.16
MySQL 부분의 docker-compose.yml 코드는 다음과 같습니다.
docker-compose.ymlmysql:
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: keijiban
MYSQL_PASSWORD: root
MYSQL_USER: user
Lumen의 .env 파일
.env 파일의 mysql 설정 부분은 다음과 같습니다.
.envDB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=keijiban
DB_USERNAME=user
DB_PASSWORD=root
조사한 결과
분명히 MySQL8에서는 사용자 작성시의 인증 방식의 디폴트가 caching_sha2_password가 되어 있는 것이 원인
MySQL을 살펴보기
우선 Mysql 컨테이너에 들어가 Mysql에 로그인,
이번에는 사용자 이름과 인증 플러그인을 알 수 있으므로 다음 명령을 입력하십시오.
MySQL_cmdselect user, plugin from mysql.user;
그러면 다음과 같이 출력되어 user 부분이 caching_sha2_password인 것을 알 수 있다.
MySQL 변경
그 후, 확인이 완료되면 caching_sha2_password의 인증 방식을 변경한다.
변경하려면 다음 명령을 입력
MySQL_cmdalter user 'user' identified with mysql_native_password by 'pass';
※ 이번에 .env 파일에서 DB_USERNAME = user, DB_PASSWORD = root로 지정하고 있으므로 'user'부분은 user, 'pass'부분은 root로 변경 (이 부분은 지정하고 있음에 따라)
명령을 입력한 후 다시 사용자 이름과 인증 플러그인을 확인해 보면
이와 같이 caching_sha2_password에서 mysql_native_password로 바뀌고 있는 것을 확인할 수 있다.
Lumen에서 다시 php artisan migrate를 해 보자.
MySQL 인증 플러그인 변경이 끝나면 MyAQL 컨테이너에서 빠져 Lumen 컨테이너로 들어가 다시
Lume_cmdphp artitisan migrate
입력,
따라서 마이그레이션이 성공합니다.
Reference
이 문제에 관하여(Docker에서 시작한 Lumen(Laravel) + mysql로 마이그레이션을 하면 SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client 에러가 발생한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/72_mikan/items/372bfa8b7c82bad2a56b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Docker에서 시작한 Lumen(Laravel) + MySQL로 Lumen 컨테이너에 들어가기
다음 명령 입력
Lumen_cmd
php artisan migrate
그 후, 다음과 같이 에러가 발생한다.
Docker 코드 (MySQL)
MySQL Dockerfile 코드는 다음과 같습니다
DockerfileFROM mysql:8.0.16
MySQL 부분의 docker-compose.yml 코드는 다음과 같습니다.
docker-compose.ymlmysql:
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: keijiban
MYSQL_PASSWORD: root
MYSQL_USER: user
Lumen의 .env 파일
.env 파일의 mysql 설정 부분은 다음과 같습니다.
.envDB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=keijiban
DB_USERNAME=user
DB_PASSWORD=root
조사한 결과
분명히 MySQL8에서는 사용자 작성시의 인증 방식의 디폴트가 caching_sha2_password가 되어 있는 것이 원인
MySQL을 살펴보기
우선 Mysql 컨테이너에 들어가 Mysql에 로그인,
이번에는 사용자 이름과 인증 플러그인을 알 수 있으므로 다음 명령을 입력하십시오.
MySQL_cmdselect user, plugin from mysql.user;
그러면 다음과 같이 출력되어 user 부분이 caching_sha2_password인 것을 알 수 있다.
MySQL 변경
그 후, 확인이 완료되면 caching_sha2_password의 인증 방식을 변경한다.
변경하려면 다음 명령을 입력
MySQL_cmdalter user 'user' identified with mysql_native_password by 'pass';
※ 이번에 .env 파일에서 DB_USERNAME = user, DB_PASSWORD = root로 지정하고 있으므로 'user'부분은 user, 'pass'부분은 root로 변경 (이 부분은 지정하고 있음에 따라)
명령을 입력한 후 다시 사용자 이름과 인증 플러그인을 확인해 보면
이와 같이 caching_sha2_password에서 mysql_native_password로 바뀌고 있는 것을 확인할 수 있다.
Lumen에서 다시 php artisan migrate를 해 보자.
MySQL 인증 플러그인 변경이 끝나면 MyAQL 컨테이너에서 빠져 Lumen 컨테이너로 들어가 다시
Lume_cmdphp artitisan migrate
입력,
따라서 마이그레이션이 성공합니다.
Reference
이 문제에 관하여(Docker에서 시작한 Lumen(Laravel) + mysql로 마이그레이션을 하면 SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client 에러가 발생한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/72_mikan/items/372bfa8b7c82bad2a56b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
FROM mysql:8.0.16
mysql:
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: keijiban
MYSQL_PASSWORD: root
MYSQL_USER: user
.env 파일의 mysql 설정 부분은 다음과 같습니다.
.env
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=keijiban
DB_USERNAME=user
DB_PASSWORD=root
조사한 결과
분명히 MySQL8에서는 사용자 작성시의 인증 방식의 디폴트가 caching_sha2_password가 되어 있는 것이 원인
MySQL을 살펴보기
우선 Mysql 컨테이너에 들어가 Mysql에 로그인,
이번에는 사용자 이름과 인증 플러그인을 알 수 있으므로 다음 명령을 입력하십시오.
MySQL_cmdselect user, plugin from mysql.user;
그러면 다음과 같이 출력되어 user 부분이 caching_sha2_password인 것을 알 수 있다.
MySQL 변경
그 후, 확인이 완료되면 caching_sha2_password의 인증 방식을 변경한다.
변경하려면 다음 명령을 입력
MySQL_cmdalter user 'user' identified with mysql_native_password by 'pass';
※ 이번에 .env 파일에서 DB_USERNAME = user, DB_PASSWORD = root로 지정하고 있으므로 'user'부분은 user, 'pass'부분은 root로 변경 (이 부분은 지정하고 있음에 따라)
명령을 입력한 후 다시 사용자 이름과 인증 플러그인을 확인해 보면
이와 같이 caching_sha2_password에서 mysql_native_password로 바뀌고 있는 것을 확인할 수 있다.
Lumen에서 다시 php artisan migrate를 해 보자.
MySQL 인증 플러그인 변경이 끝나면 MyAQL 컨테이너에서 빠져 Lumen 컨테이너로 들어가 다시
Lume_cmdphp artitisan migrate
입력,
따라서 마이그레이션이 성공합니다.
Reference
이 문제에 관하여(Docker에서 시작한 Lumen(Laravel) + mysql로 마이그레이션을 하면 SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client 에러가 발생한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/72_mikan/items/372bfa8b7c82bad2a56b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
우선 Mysql 컨테이너에 들어가 Mysql에 로그인,
이번에는 사용자 이름과 인증 플러그인을 알 수 있으므로 다음 명령을 입력하십시오.
MySQL_cmd
select user, plugin from mysql.user;
그러면 다음과 같이 출력되어 user 부분이 caching_sha2_password인 것을 알 수 있다.
MySQL 변경
그 후, 확인이 완료되면 caching_sha2_password의 인증 방식을 변경한다.
변경하려면 다음 명령을 입력
MySQL_cmdalter user 'user' identified with mysql_native_password by 'pass';
※ 이번에 .env 파일에서 DB_USERNAME = user, DB_PASSWORD = root로 지정하고 있으므로 'user'부분은 user, 'pass'부분은 root로 변경 (이 부분은 지정하고 있음에 따라)
명령을 입력한 후 다시 사용자 이름과 인증 플러그인을 확인해 보면
이와 같이 caching_sha2_password에서 mysql_native_password로 바뀌고 있는 것을 확인할 수 있다.
Lumen에서 다시 php artisan migrate를 해 보자.
MySQL 인증 플러그인 변경이 끝나면 MyAQL 컨테이너에서 빠져 Lumen 컨테이너로 들어가 다시
Lume_cmdphp artitisan migrate
입력,
따라서 마이그레이션이 성공합니다.
Reference
이 문제에 관하여(Docker에서 시작한 Lumen(Laravel) + mysql로 마이그레이션을 하면 SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client 에러가 발생한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/72_mikan/items/372bfa8b7c82bad2a56b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
alter user 'user' identified with mysql_native_password by 'pass';
MySQL 인증 플러그인 변경이 끝나면 MyAQL 컨테이너에서 빠져 Lumen 컨테이너로 들어가 다시
Lume_cmd
php artitisan migrate
입력,
따라서 마이그레이션이 성공합니다.
Reference
이 문제에 관하여(Docker에서 시작한 Lumen(Laravel) + mysql로 마이그레이션을 하면 SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client 에러가 발생한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/72_mikan/items/372bfa8b7c82bad2a56b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)