인프런 커뮤니티 질문&답변
sql버전안맞음
작성
·
130
0
저의 경우 client sql 버전이 안맞다고 나옵니다
workbench는 8.0
Mysql 9.0 Configurator로 설치했습니다
stackoveflow에서 찾아보니
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Where root as your user localhost as your URL and password as your password
Then run this query to refresh privileges:
flush privileges;
Try connecting using node after you do so.
If that doesn't work, try it without @'localhost' part.
이런 답변이 있는데
어떻게 적용하는지 알 수 있을까요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
영준님의 ER_NOT_SUPPORTED_AUTH_MODE 에러는 MySQL 클라이언트와 서버 간의 인증 모드 호환 문제에서 발생합니다.
MySQL 8.0부터 기본 인증 모드가 이전 버전과 달라 클라이언트가 해당 인증 방식을 지원하지 않을 때 나타납니다.
주어진 해결 방법을 적용하려면, 먼저 MySQL 서버에 접속해야 합니다. Workbench를 사용하여 MySQL 서버에 로그인한 후, SQL 쿼리 섹션에서 다음 쿼리를 실행하시면 됩니다.
- 사용자의 인증 방식을 변경하는 쿼리입니다. - ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '여기에_비밀번호를_입력하세요';- 여기서, - root는 사용자 이름이고,- localhost는 데이터베이스 URL, ‘여기에_비밀번호를_입력하세요’는 사용자의 비밀번호로 바꿔주세요.
- 변경 사항을 적용하기 위해 권한을 새로고침하는 쿼리입니다. - FLUSH PRIVILEGES;
이 과정을 거친 후, Node.js에서 MySQL에 다시 연결해 보세요.
@'localhost' 부분 없이 시도하는 것은 해당 사용자가 모든 호스트에서 접속할 수 있도록 설정하기 위함입니다. 특정 호스트가 아닌 모든 호스트에서 접속할 수 있는 사용자로 변경하려면, localhost 대신 %를 사용하면 됩니다. 예를 들면, ALTER USER 'root'@'%' IDENTIFIED...와 같이 사용할 수 있습니다.
단, 이 방식을 사용할 때는 보안 문제를 고려해야 합니다. %는 모든 호스트에서의 접근을 허용하므로, 더 넓은 범위의 접속을 허용하는 것이므로 보안상 주의가 필요합니다.







말씀대로 적용을 해보았습니다
flush는 적용이 되지
ALTER의 경우 오류가 나는데 제가 잘못적용한 것인가요?