인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

yj na님의 프로필 이미지
yj na

작성한 질문수

Node.js 웹개발로 알아보는 백엔드 자바스크립트의 이해

MySQL 연동 설정

nodejs와 mysql 연동 에러

작성

·

25K

0

Connection.connect(); 를 추가한 후 저장하면

다음과 같은 에러가 뜹니다.

Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

해결책을 검색해 다음을 입력해보니,

use mysql;

update user set authentication_string=password(''), plugin='mysql_native_password' where user='root';

FLUSH PRIVILEGES;

다음과 같은 에러가 자꾸 나타나면서 해결을 못하고 있습니다.:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(''), plugin='mysql_native_password' where user='root'' at line 1

어떻게 하면 mysql 연동 에러를 해결할 수 있을까요? 도움주시면 정말 감사하겠습니다. ㅜㅜ

답변 16

24

mysql installer > server 옆에 reconfigure > Auth 설정가서 legacy 선택 > 완료 하면 잘 됩니다~

10

https://stackoverflow.com/questions/50093144/mysql-8-0-client-does-not-support-authentication-protocol-requested-by-server

ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘사용할패스워드’

뭔가 이렇게 하니까 됐어요~~

이거 해도 안 돼요 ㅠㅠ

7

mysql2를 사용하면 됩니다!

const mysql = require("mysql2");

맥북m1 인데 mysql2 하니까 잘되네요. 감사합니다. 사람 한 명 살리셨어요

2023.01.07 기준

이걸로 하니까 잘됨 ㅎㅎ

3

저는 mysql에서

ALTER USER '[MYSQL 아이디]'@'[MYSQL 주소]' IDENTIFIED WITH mysql_native_password BY '[MYSQL 비밀번호]';

입력하고 진행해서 해결했습니다

강의 내용대로 하면

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'asdf1234';

입니다

1

혹시 해결하셨나요? 해결하셨다면 공유 부탁드립니다 ㅠㅠ저도 연동이 안되네요 ㅠㅠ s
--> https://stackoverflow.com/questions/50093144/mysql-8-0-client-does-not-support-authentication-protocol-requested-by-server
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '사용할패스워드'

1

혹시 Mysql version이 8 아닌가요? 저는 8 설치했었는데 그 에러가 떴었거든요. 아예 모두 지운 후에 새롭게 설치하시고 Authentication Method 설정 단계에서 recommended 설정 말고 legacy 설정하니까 에러가 사라지더라고요 혹시 모르니 참고하세요! 제 생각에는 아예 지울 필요 없이 msi 파일 들어가면 reconfiguration 할 수 있는데 거기서 바꿔주면 될 듯 싶습니다.

0

저도 저 문제를 해결 못하고 있는데, 

ramti_ 님이 어떤 답을 다셨나요..??  

 

지금 댓글이 없는것 같네요 ㅠㅠ

저도 안보여요.

ALTER USER '[MYSQL 아이디]'@'[MYSQL 주소]' IDENTIFIED WITH mysql_native_password BY '[MYSQL 비밀번호]';

따로 설정을 건드리신게 전혀 없으시다면 위 명령어를 기준으로 작업하시면 될 것 같습니다.

저의 경우에는

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234';

이렇게 해서 해결했습니다.

 

다른분들 어떻게 하셨길래 된건지 궁금하네요..

0

ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_! ramti_!  감사합니다..

0

저는 귀찮아서 mysql 비밀번호를 설정을 빈칸으로 했고, app.js 에 있는 connection 블록에서 비밀번호를 없앴어요. 어짜피 연습하는 거라 빨리빨리 넘어가려고요.

var connection = mysql.createConnection({
	host : 'localhost',
	port : 3306,
	user : 'root',
	database : 'jsman'
	// 비밀번호 여기에 설정해야함.
});

0

ramti_ 님 사랑합니다!

0

ramti_ 님 정말 감사합니다 .... ㅠㅠ

0

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '사용할패스워드';

이 명령만 가지고는 안되서 

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '사용할패스워드';

도 함께 해 줬더니 되는군요.

0

감사합니다

0

ramti _  너무 너무 감사합니다.. 눈물이 다 나네요...

0

ramti _ 님 감사합니다..

0

ramti님 말씀대로 하니까 해결했네요. 고생하고 있었는데 감사합니다.

yj na님의 프로필 이미지
yj na

작성한 질문수

질문하기