[mysql] Sequel Pro 및 MySQL 연결 실패

방금 Homebrew에서 Mac에 mysql을 설치했습니다.

brew install mysql

mysql -V

mysql  Ver 8.0.11 for osx10.13 on x86_64 (Homebrew)

터미널에서 작동하고 mysql에 로그인 할 수 있지만 Sequel Pro에서는

여기에 이미지 설명 입력

호스트 127.0.0.1에 연결할 수 없거나 요청 시간이 초과되었습니다.

주소가 정확하고 필요한 권한이 있는지 확인하거나 연결 시간 초과 (현재 10 초)를 늘려보십시오.

MySQL은 다음과 같이 말했습니다 : 인증 플러그인 ‘caching_sha2_password’를로드 할 수 없습니다 : dlopen (/usr/local/lib/plugin/caching_sha2_password.so, 2) : 이미지를 찾을 수 없음

내가 뭘 놓치고 있는지 알아낼 수 없어



답변

이는 Sequel Pro가 아직 새로운 종류의 사용자 로그인을위한 준비가되지 않았기 때문입니다 : 드라이버가 없습니다. 비 자작 설치에 대한 빠른 수정 :

Apple Logo > System Preferences > MySQL > Initialize Database을 클릭 한 다음 새 비밀번호를 입력하고 ‘기존 비밀번호 사용’을 선택합니다.

다시 시작하면 연결할 수 있습니다. 그렇지 않으면 db 테이블을 잃을 수 있으므로 새로 설치할 때만 수행하십시오.

mysql + homebrew

기본적으로 몇 가지 작업을 수동으로 수행해야하지만 위의 솔루션에서와 같이 데이터베이스 데이터가 삭제되지 않습니다.

  • [my.cnf] [1] 파일로 이동하여 섹션에서 [mysqld]행을 추가하십시오.

    default-authentication-plugin=mysql_native_password

  • 터미널에서 mysql 서버에 로그인합니다 : run mysql -u root -p, 그런 다음 쉘 내부에서 다음 명령을 실행합니다 ( [password] 를 실제 비밀번호로 대체 ).

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '[password]';

  • 를 사용하여 mysql 셸을 종료 exit하고 brew services restart mysql.

작동해야합니다.


my.cnf

my.cnf 파일은 Unix / Linux의 /etc/my.cnf에 있습니다.


답변

요약 : Sequel Pro는 2016 년 이후로 죽었습니다. 도구 때문에 DB를 다운 그레이드하지 마십시오. 대체 도구로 이동하십시오.

업데이트 2020 : Sequel Pro는 공식적으로 죽었지 만 비공식적으로 살아 있습니다! 이 문제가없는 ” nightly “빌드 (예 : Mysql 8 인증 지원)는 https://sequelpro.com/test-builds 에서 찾을 수 있습니다.


여기에있는 다른 모든 솔루션은 사용중인 도구에 대해 DB 설정을 변경하는 것이 좋습니다 (MySQL에서 알리는 것처럼 보안 수준이 낮아짐). 그것은 나에게 허용되지 않습니다.

나는 항상 Sequel Pro의 열렬한 팬이었고 심지어 기부했습니다. 그러나 모든 열정과 사랑으로 도구가 2016 년 이후로 출시되지 않은 경우 죄송합니다 . 욜로, 그리고 계속 가야 해!

내가 찾은 대안 ( @arcseldon 덕분에 https://stackoverflow.com/a/55235533/2321594 에서)은 MySQL 8의 새로운 인증 (비 레거시) 방법을 지원하는 DBeaver 입니다.

추신. DB 측아닌 도구 측 의 유일한 트릭 MySQL 8 연결을 생성 할 때 “드라이버 속성”(나중에 연결 편집에서 찾을 수 있음)으로 이동하여 값 allowPublicKeyRetrievaltrue.

Docker를 사용하여 만든 MySQL 컨테이너에 연결하려면 이것이 필요했습니다. 이 도구뿐만 아니라 생태계의 다른 애플리케이션에 대해 MySQL의 IP를 외부에 공개하려면 MySQL에서 새 사용자를 생성하거나 -e MYSQL_ROOT_HOST=%런타임에 전달 하거나 ENV로 전달해야 합니다.


답변

  1. mysql 구성 이 없다고 가정하면 다음을 에코합니다.~/.my.conf
[mysqld]
default-authentication-plugin=mysql_native_password
  1. mysql에 로그인mysql -u root -p
  2. 다음을 사용하여 루트 사용자 암호를 설정하십시오. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '[PASSWORD]'; 위치를 [PASSWORD]사용자가 선택한 암호입니다.
  3. 예를 들어 mysql 을 다시 시작하십시오.brew services restart mysql


답변

Sequel Pro는 공식적으로 죽었고 더 이상 새로운 MySql 기능을 지원하지 않습니다. 그러나 좋은 소식은 GitHubApp store 에서 사용할 수있는 Sequel Ace 로 대체되었다는 것 입니다. 이 앱은 무료이며 Sequel Pro 의 공동 작업자 중 한 명이 게시물을 작성 했기 때문에 Sequel Pro의 공식 대체물처럼 보입니다 .

추신. 다른 사람들이 지금 Sequel Pro에 대한 최신 대체품이 있다고 언급하지 않았기 때문에 나는 이것을 답변으로 게시하기로 결정했습니다.


답변

root@127.0.0.1을 통해 MySQL에 연결하는 경우 암호도 재설정해야합니다!

ALTER USER ‘root’@’127.0.0.1’IDENTIFIED WITH mysql_native_password BY ‘[password]’;


답변

누구든지이 문제를 직면하고 설치 한 경우 MySQL version >8를 통해 .dmg공식 링크에서 다운로드. 이 경우이 가이드 라인을 사용 하십시오 .


답변

그것은 나를 위해 일하고 있습니다. 이 오류가 발생하는 경우 :

호스트 127.0.0.1에 연결할 수 없거나 요청 시간이 초과되었습니다.

주소가 정확하고 필요한 권한이 있는지 확인하거나 연결 시간 초과 (현재 10 초)를 늘려보십시오.

MySQL은 다음과 같이 말했습니다 : 인증 플러그인 ‘caching_sha2_password’를로드 할 수 없습니다 : dlopen (/usr/local/lib/plugin/caching_sha2_password.so, 2) :

PLZ이 솔루션을 시도

여기에 이미지 설명 입력