작성
·
47
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의 경우 오류가 나는데 제가 잘못적용한 것인가요?