💡 진행 프로젝트
🔎 에러 발생 경로
AWS 서버 배포 중 sequelize db 생성을 위해 명령어 입력 시 에러 발생
npx sequelize db:create --env production
😵💫 error 발생......
root@ip-172-31-34-127:/home/ubuntu/AWS-deploy-test# npx sequelize db:create --env production
Sequelize CLI [Node: 16.14.0, CLI: 6.4.1, ORM: 6.15.0]
Loaded configuration file "config/config.json".
Using environment "production".
ERROR: Access denied for user 'root'@'localhost'
root 아이디로 mysql 접속 시 나타나는 에러인 것 같은데 터미널을 통해 mysql -uroot -p 를 입력하고 비밀번호 입력 시 정상적으로 해당 아이디 접근이 가능하다;;
🔐 해결 과정
👉 해당 error를 검색하니 이미 많은 사람들이 나와 같은 에러를 만난 것을 확인할 수 있었다.
👉 mysql 비밀번호가 잘못되서 생기는 error 라고 되어 있는 글도 봤지만 정상적으로 mysql -uroot -p 를 입력하고 비밀번호를 입력했을 때 정상적으로 로그인이 되는 것을 확인했기에 해당 원인은 아니라고 생각했다.
👉 여러 블로그 글을 참고하던 중 Ubuntu에서 mysql의 root계정 로그인이 안되서 생기는 문제임을 알 수 있었다.
👉 해당 원인에 대해 블로그 마다 말하고자 하는 바는 동일한 것 같지만 해결하는 방법은 약간씩 차이가 있음을 알 수 있었다.
👉 여러 블로그 글을 참고하며 시도해보던 중 stackoverflow의 해당 문제에 873개의 up 버튼이 눌려져 있는 글을 확인.
출처: https://stackoverflow.com/questions/41645309/mysql-error-access-denied-for-user-rootlocalhost
👉 해당 쿼리를 내가 설정한 비밀번호만 바꿔서 실행
🙏🏻 정상적으로 db가 생성됨을 확인!!!!
💬 stackoverflow 글을 참고하자면 해당 쿼리는 '단일 쿼리로 auth_plugin을 mysql_native_password 로 변경 하고 루트 암호를 root 로 설정' 하는 과정이라고 한다.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_passowrd by '비밀번호';
100% 내용을 정확히 파악하지는 못했지만 ubuntu의 경우 해당 쿼리를 통해 mysql root 아이디의 비밀번호를 재설정해야 정상적으로 db에 연결할 수 있음을 알 수 있었다.
( 해결하는데 너무 오래 걸린 듯 하다 😿 )