본문 바로가기
DATABASE

[mysql8.0] 툴로 접속 시 127.0.0.1(localhost) Connection failed 해결

by 하이바네 2022. 12. 24.
반응형

집에서 mac으로 학습을 시작하느라 homebrew로 mysql을 설치하고 heidisql은 mac버전이 없어 Sequel Pro로 접속을 하려 했지만 오류가 발생했다.

 

위와 같이 간단히 입력을 하였으나 나타나는건 "Connection failed!"와 아래에 이어지는 에러들.

 

그러나 Terminal로 접속은 잘 되는 상황이었고, 찾아보니 mysql의 비밀번호 설정을 추가적으로 해주어야 했었다. 일단은 따라하자.

 

1.  mysql -u root -p
  - Terminal로 mysql root 계정으로

2. alter user root@localhost identified with mysql_native_password by 'PASSWORD';
  - 비밀번호 설정

PASSWORD로 된 부분에 사용할 비밀번호를 넣으면 된다.

 

 

그럼 위의 변경이 무엇이었는지에 대해서 정확히 알아보자.

1. mysql 8.0버전 부터는 인증 암호화 플러그인이 바뀌었다.

기존에 사용하던 방식이 mysql_native_password이었고 변경된것이 caching_sha2_passwrd이다.

 

2. 그럼 툴에서 접속이 안 되었던 원인은?

정확하게 따지면 접속이 안 되었던 원인은 툴이 해당 플러그인의 지원을 안 해서가 먼저라고 볼 수 있다.

그래서 위의 명령어를 사용해서 기존 플러그인을 사용하는 형태로 비밀번호를 변경하는 작업을한것이다.

 

그럼 위에서 사용한 해결방법은 현재 생성된 사용자의 계정의 비밀번호에 사용하는 플러그인을 변경한 것이고, 다른 방법도 있다.

예를 들면 앞으로 mysql에서는 mysql_native_password를 사용하겠다고 명시를 하는 것이다.

 

그 방법은

 

my.cnf파일을 열어서 다음과 같이 적은 후 mysql을 재시동 하는 것이다.

default_authentication_plugin=mysql_native_password

 

혹시라도 해당 내용으로 삽질하는 분들께 빠른 해결책이 되기를 바란다.

 

 

728x90

댓글