[node.js][MySQL] "errno": 1251 해결하기

Sojin·2024년 5월 15일

개발자 되기

목록 보기
9/12

node.js를 이용하여 crud 구현 연습을 하던 중 localhost에 접속하였을 때 아래와 같은 에러가 발생하였다.

찾아보니 MySQL 클라이언트가 서버에서 요청한 인증 프로토콜을 지원하지 않아 발생한 것으로 보였다.
구글링 및 stackoverflow 사이트를 통해 찾은 해결방법은 다음과 같았다.

ALTER USER 'root@'localhost' INDENTIFIED WITH mysql_native_password BY '비밀번호 입력';

터미널에서 해당 코드를 입력하면 비밀번호가 변경되고 다시 접속할 수 있게된다!

그러나 나에게 닥친 또다른 시련이 있었다..

불러오고자 하는 table 명을 'book'으로 설정해야 하는데 workbench에서 파일명을 아무리 수정해도 결국엔 'new_table' 이라고 떴다.. 그래서

'SELECT * FROM "new_table";

라고 수정하였는데도 localhost에 접속하면 계속 '접속중'인 아이콘만 떴다... npm start도 다시 해보고 시스템을 껐다 켜도 여전히 작동하지 않았다.
본좌는 mac M1 유저로 workbench 호환이 잘 안되는 부분을 보였고..(table제목 설정, 새 테이블 만들기 등 작동이 안되는 부분이 있었다.)
그래서 선택한 나의 결정은! 기존 설치되어 있던 mysql8.0** 버전을 낮은 버전으로 다시 설치하는 것!

구글링을 해보니 mysql 8.0ver 이 후 부터는 RDBS 등 5.7보다 더 좋아졌지만 그래서 가끔 서버 접속에 까다로운 부분이 존재하는 것 같았다. (어려움 겪는 사람 바로 나야 나..)

  1. 우선 홈브루를 통해 mysql 8.0ver 삭제를 진행 하였다.
    (아래 링크에 접속하면 mysql을 완전히 삭제할 수 있는 명령어를 알려주신다! 짱!!)
    https://github.com/rangyu/TIL/blob/master/mysql/MySQL-%EC%99%84%EC%A0%84-%EC%82%AD%EC%A0%9C%ED%95%98%EA%B3%A0-%EC%9E%AC%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0-(MacOS).md

  2. mysql 홈페이지에 들어가 재설치를 진행 해주고..

  1. workbench 접속 , 그러나 또 다시 발생한 테이블 타이틀 변경 문제..

  1. 결국 workbench 종료 후 터미널 명령어로 테이블 명 바꿔주기 시도
RENAME TABLE old_table TO new_table;
  1. 이번엔 또 다른 문제가 발생했다! 잘 처리 되던 명령어가 재설치 후 말을 듣지 않는다..omg

  2. 한참을 구글링 하여 알게된 점! zsh: 를 bash로 바꿔 주어야 sql 명령어가 작동한다는 사실!

chsh -s /bin/bash

zsh를 bash로 변경하는 명령어 입력 후 작동하니 다시 sql 명령어가 잘 작동하였다.

이번에 mysql을 사용해보면서 느낀점은

  1. 웬만하면 homebrew를 이용하여 mysql을 설치하지 말 것. (홈페이지에서 직접 설치하는 것이 각종 명령어 입력 시 에러가 덜 발생하는 것 같다.)

  2. workbench 이용이 터미널에 명령어 입력보다 훨씬 편하지만 이 또한 예상치 못한 에러를 가끔 가져온다.
    또한 터미널 명령어로 sql 쿼리를 짜게 되면 workbench 사용보다 어렵고 불편해 보일 수 있지만 sql 자격증 공부할 때 이론 이해측면에서 많은 도움이 되어서 한번쯤은 터미널로 쿼리문 명령어를 작성해 보는 것 추천!

profile
Dev dreamer

0개의 댓글