Sequel Pro 및 MySQL 연결 실패


94

방금 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) : 이미지를 찾을 수 없음

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

답변:


182

이는 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에 있습니다.


14
나는 시스템 환경에서 MySQL의를 찾을 수 없습니다
핫토리 한조

2
덕분에 설명하지만, 찾을 수 없습니다에 대한 my.cnf내 컴퓨터 (맥 OS 높은 시에라 10.13.5)에서 파일을
핫토리 한조

2
그러한 파일이 없으면
새로 만들어야

14
이 신선한에 큰 일을 brew install mysql사용하여/usr/local/etc/my.cnf
mintwhip을

5
내가 사용하는, 그래서 내가 암호를 사용하지 않은 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';-이 나를 위해 일한
빈센트 탕

33

요약 : 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로 전달해야 합니다.


내 대답이 OP 문제를 해결하지 못하기 때문에 @Aidin 당신이 나에게 반대표를 주었다고 생각합니다. 그것은 단지 지역 개발 및 지역 설정입니다. 그래서 요점이 무엇입니까? 내가 잘 알고있는 소프트웨어를 떠나야하는데 당신이 그렇게 말했기 때문에 함께 일하는 것을 좋아합니까?
Maciej Kwas

5
@MaciejKwas 개인적으로 받아들이지 마십시오. 여기에 더 많은 설명을 제공 했음에도 불구하고 감사합니다. 저는 여전히 제 표를 지키고 있습니다. 세 가지 주요 이유는 다음과 같습니다. 1) 최신 소프트웨어 개발에서는 dev / prod간에 다른 설정을 유지하는 것이 권장되지 않습니다. 사실 그것은 12factor.net/dev-prod-parity의 X 인자입니다 . 2) 사람들은 이러한 도구를 사용하여 제품을 확인할 수도 있습니다. ssh-tunnel / proxy를 생성하고 GUI 도구를 통해 prod DB로 이동할 수 있습니다. 이러한 경우 DB 인증을 다운 그레이드하는 것은 옵션이 아닙니다. 3) 변화와 업그레이드에 적응하지 않는 것은 개인적으로 중요하지 않은 것입니다.
Aidin

1
나는 몇 년 동안 로컬에서 실행하지 않은 MySQL 프로젝트로 돌아오고있다. b / c 그것은 견고했고 속편 프로가 죽었다는 사실을 알게되어 너무 슬프다 :(
Catfish

또한 선택할 수있는 여러 드라이버가 있으므로 DBeaver에서 MySQL +8 드라이버를 선택하십시오. 드라이버 속성에서 allowPublicKeyRetrieval을 true로 설정하고 저장합니다.
Peheje

18
  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

7

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

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


뉴스 주셔서 감사합니다.
핫토리 한조

드디어! 잠시 기다렸습니다.
Jonny

6

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

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


나는 얻는다 :ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 50, found 49. Created with MySQL 80012, now running 80013. Please use mysql_upgrade to fix this error.
Chance Smith 19

터미널에서 이것을 시도하십시오 : mysql_upgrade --force -uroot -p
Xeno

mysql_upgrade는 이제 더 이상 사용되지 않으며 작동하지 않습니다. 대신 mysqld --upgrade = FORCE를 사용하십시오.
ilovecookiez11


1

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

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

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

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

PLZ이 솔루션을 시도

여기에 이미지 설명 입력


매력처럼 작동했습니다.
Jimmy Adaro
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.