-
[MySQL] ER_NOT_SUPPORTED_AUTH_MODE 해결법programing/Database 2019. 9. 29. 21:32
안녕하세요, Einere입니다.
(ADblock을 꺼주시면 감사하겠습니다.)
Node.js의 Express에서 mysql미들웨어를 이용해서 원격연결 할 때 아래와 같은 에러가 발생했습니다.
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
const connection = mysql.createConnection({ host: 'localhost', user: 'einere', password: 'mypassword', database: 'mydb', insecureAuth: true }); connection.connect();
위와 같이 연결을 시도한다면, einere@localhost가 되겠죠?
그렇다면 mysql에서 다음과 같이 해주시면 됩니다.
mysql> use mysql;
mysql> alter user 'einere'@'%' identified with mysql_native_password by 'mypassword';
mysql> flush pribileges;
여기서 'einere'@'%'인 이유는, 원격 접속시에도 허용을 해줘야 하기 때문에 %(와일드 카드)를 사용합니다.
추가로, 접근 권한이 없다면 다음과 같이 권한을 부여해줍니다.
grant all on mydb.* to 'einere'@'%';
mysql> flush pribileges;
이렇게 하시면 einere로 접속하면 mydb의 모든 테이블에 모든 권한이 허용됩니다.
'programing > Database' 카테고리의 다른 글
[Docker, MySQL] docker에 mysql 설정하기 (0) 2019.11.07 [Docker, MySQL] docker에 mysql 설치하기 (0) 2019.09.24 [Express, Redis] express-session과 redis-server 활용하기 (0) 2019.09.24 [Redis] mac에 redis설치하는 방법 및 여러가지 정보들 (0) 2019.09.24 [MySql, Sequelize] model 만들기 (0) 2019.03.22 댓글