[Error] mysql연결시 나는 오류 해결하기

2023. 2. 16. 22:58·Error
목차
  1. 문제 발생
  2. 1) linux에서 규제 확인
  3. 2) mysql에서도 규제 확인
  4. 문제 해결
  5. 1) 파일 수정
  6. 2) mysql서버 재부팅
  7. 3) 서버 변수 확인
  8. 문제발생
  9. 문제 해결
728x90
반응형

나중에 정리해놓고 글을 보았을 때 유용하게 쓰일 것 같아 정리해보고자 한다.

문제 발생

오류 발생
오류 발생

이러한 오류가 뜨면서 db를 작업하는 tableplus에서는 드라이버가 어떠한 패킷에 대한 응답을 받지 않았다고 하여 에러가 발생하였다고 적혀있었다.

이 문제 발생시 방화벽에 대한 규제는 풀어주었기에 방화벽에 대한 에러는 아니었다. 또한 mysql의 경우 tcp/ip나 socket을 사용하여 mysql과 연결하는데, 내 경우 socket을 사용치 않으므로 tcp/ip를 사용한다. 그래서 netstat으로 하여 지금 쓰는 포트에 대한 규제가 있는지 확인하였다.

1) linux에서 규제 확인

netstat -ntlp | grep 3306

위와 같은 코드를 쳐서 확인해주었다.

2) mysql에서도 규제 확인

서버 변수에서도 확인이 가능하다. mysql에 들어가야 한다.

show variables like '%bind%';

show variables like '%bind%';
show variables like '%bind%';

위와 같이 치면 bind_address와 mysqlx_bind_address에 대한 값이 나온다. 이도 1번과 같이 2번도 127.0.0.1이 나온다면 이부분을 바꿔줘야 한다.

netstat을 쳤을 때 3306을 필터링 걸어보면, 127.0.0.1:33060과, 127.0.0.1:3306이 나온다. mysql은 기본적으로 3306포트를 이용한다. 여기서 127.0.0.1이라는 뜻은 local에서만 접속을 허용하고 이외의 외부 접속은 허용되지 않는다는 말이다. 그래서 이 부분을 0.0.0.0으로 바꿔주어야 한다.

https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_bind_address

 

위 사이트는 mysql 사이트인데 bind_address에 관련하여 잘 나와 있다. bind_address는 서버 시작 시 시스템 변수를 설정하는 곳이라고 서술되어 있다. 또한 아래와 같이 0.0.0.0으로 바꿔줘야 하는 이유는 ipv4으로 연결을 수락하기 때문이다.

포트를 바꿔야 하는 이유
포트를 바꿔야 하는 이유

문제 해결

1) 파일 수정

cd /etc/mysql/mysql.conf.d
sudo vim mysqld.conf

나는 ubuntu를 사용하고 있는데, 이에는 /etc/mysql/mysql.conf.d 밑에 mysqld.conf파일이 존재한다.

이 파일을 수정하면 되는데, 이것도 수정의 권한이 안되어서 구글링해보았다. sudo로 들어가지 않아서 수정과 글쓰기가 안되었다.

sudo vim mysqld.cnf
sudo vim mysqld.cnf

반응형

수정 전
수정 전

이렇게 들어가야 수정이 가능하다. 그리고 아래와 같이 [mysqld]로 표시된 부분에서 bind-address를 찾아서 0.0.0.0으로 바꿔주면 된다.

수정 후
수정 후

2) mysql서버 재부팅

sudo service mysql restart
sudo service mysql status

수정한 파일에 적용될 수 있게 mysql서버를 재부팅해준다. ubuntu를 사용하고 있기에 centOs와 window와의 명령어가 다르므로 유의해야 한다. 아래에 링크를 걸어두었으니 참고하자.

https://zetawiki.com/wiki/리눅스_MySQL_시작,_정지,_재시작,_상태확인

 

제일 상위 파일로 파일 위치를 옮겨서 service명령어를 사용하여 재시작을 해주고, 잘 돌아가고 있는지 상태를 확인해준다.

mysql이 실행중인 것을 보여주는 화면
active이라면 mysql이 잘 돌아가고 있다면 실행중인 것이다.

3) 서버 변수 확인

다시 mysql에 접속한다. 그리고 bind_address의 값이 바꼈는지 확인하고, mysql에 서버가 연결되는지 확인한다.

해당 포트의 변화 모습
해당 포트의 변화

문제발생

또류다,,, 위의 문제를 찾으면서 봤던 오류라서 빠르게 처리할 수 있었다. 위의 오류와 덧붙여서 정리하고자 한다.

https://1mini2.tistory.com/88 이 사이트를 참고하였다.

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

 

이 문제는 클라이언트 프로그램에서 mysql 패스워드 플러그인 "caching_sha2_password"을 소화하지 못해서 생기는 오류이다. 클라이언트 프로그램에서 사용할 수 있도록 유저의 패스워드 Plugin을 바꿔준다.

문제 해결

이 오류는 plugin만 바꿔주면 쉽게 해결된다. 아래의 사진은 plugin을 바꿔주기 전의 사진이다. 내 user는 uhee로 설정해놨다.

수정 전
수정 전

alter user 'id'@'%' identified with mysql_native_password by 'password';

이 코드를 작성하여 plugin을 바꿔주면 아래의 사진과 같이 변한다. mysql_native_password로 하여 해시방법을 바꿔준다.

수정 후
수정 후

728x90
반응형
저작자표시 (새창열림)
  1. 문제 발생
  2. 1) linux에서 규제 확인
  3. 2) mysql에서도 규제 확인
  4. 문제 해결
  5. 1) 파일 수정
  6. 2) mysql서버 재부팅
  7. 3) 서버 변수 확인
  8. 문제발생
  9. 문제 해결
'Error' 카테고리의 다른 글
  • [Error]this.client.send is not a function(node와 s3관련 오류 모음)
  • [Error] Cannot set headers after they are sent to the client 오류
  • [Error] Vue와 express 통신시 백엔드에서 나타나는 오류 해결하기
  • [Error] this.client.send is not a function(node와 s3관련 오류 모음)
Uheeking
Uheeking
안녕하세요. react, flutter, node.js에 관련해서 글을 쓰는 블로그입니다.
Uheeking
Uheeking의 it로그
Uheeking
전체
오늘
어제

공지사항

  • 분류 전체보기 (254)
    • React (48)
    • Node.js (32)
    • Next.js (22)
    • Vue.js (15)
    • javascript (3)
    • Django (19)
    • etc (23)
    • Flutter (30)
    • Error (16)
    • AWS (11)
    • docker & Kubernetes (32)
    • git (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
250x250

인기 글

태그

  • 넥스트
  • Django
  • Kubernetes
  • NEXT
  • Create
  • Vue.js
  • flutter
  • 오블완
  • firebase
  • 플러터
  • useEffect
  • sequelize
  • supabase
  • React
  • docker
  • Props
  • 쿠버네티스
  • 티스토리챌린지
  • MySQL
  • Express
  • 장고
  • AWS
  • SSR
  • 노드
  • next.js
  • error
  • 리액트
  • node.js
  • 도커
  • mosquitto

최근 댓글

최근 글

250x250
hELLO· Designed By정상우.v4.5.2
Uheeking
[Error] mysql연결시 나는 오류 해결하기

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.