Kết nối Sequel Pro và MySQL không thành công


95

Tôi vừa cài đặt mysql trên mac từ Homebrew

brew install mysql

mysql -V

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

từ thiết bị đầu cuối nó hoạt động và tôi có thể đăng nhập vào mysql nhưng từ Sequel Pro nó nói

nhập mô tả hình ảnh ở đây

Không thể kết nối với máy chủ 127.0.0.1 hoặc yêu cầu đã hết thời gian chờ.

Đảm bảo rằng địa chỉ chính xác và bạn có các đặc quyền cần thiết hoặc thử tăng thời gian chờ kết nối (hiện tại là 10 giây).

MySQL cho biết: Không thể tải plugin xác thực 'caching_sha2_password': dlopen (/usr/local/lib/plugin/caching_sha2_password.so, 2): không tìm thấy hình ảnh

không thể tìm ra những gì tôi đang thiếu

Câu trả lời:


183

Điều này là do Sequel Pro chưa sẵn sàng cho một kiểu đăng nhập người dùng mới, vì lỗi nêu rõ: không có trình điều khiển. Khắc phục nhanh các cài đặt không phải homebrew:

Apple Logo > System Preferences > MySQL > Initialize Database, sau đó nhập mật khẩu mới của bạn và chọn 'Sử dụng mật khẩu cũ'

Sau khi khởi động lại, bạn sẽ có thể kết nối. Chỉ thực hiện khi cài đặt mới, vì nếu không, bạn có thể mất bảng db của mình.

mysql + homebrew

Về cơ bản, bạn sẽ phải thực hiện một số hành động theo cách thủ công, tuy nhiên - dữ liệu cơ sở dữ liệu của bạn sẽ không bị xóa như trong giải pháp trên

  • Đi tới tệp [my.cnf] [1] và trong phần [mysqld]thêm dòng:

    default-authentication-plugin=mysql_native_password

  • Đăng nhập vào máy chủ mysql từ terminal: run mysql -u root -p, sau đó bên trong shell thực thi lệnh này (thay thế [mật khẩu] bằng mật khẩu thực của bạn):

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

  • thoát khỏi trình bao mysql với exitvà chạy brew services restart mysql.

Nên làm việc.


my.cnf

Tệp my.cnf nằm trong /etc/my.cnf trên Unix / Linux


14
Tôi không thể tìm thấy MySQL trong System Preferences
Hattori Hanzō

2
cảm ơn vì giải thích, nhưng không thể xác định vị trí my.cnftập tin trên máy tính của tôi (hệ điều hành MacOS High Sierra 10.13.5)
Hattori Hanzō

2
Nếu không có tập tin như vậy, bạn sẽ phải tạo một: xin vui lòng, có một cái nhìn tại thread này: stackoverflow.com/questions/7973927/...
Maciej Kwas

14
Điều này làm việc rất tốt trên một tươi brew install mysqlsử dụng/usr/local/etc/my.cnf
mintwhip

5
Tôi không sử dụng mật khẩu, vì vậy tôi đã sử dụng ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';- điều này phù hợp với tôi
Vincent Tang

33

TL; DR: Sequel Pro đã chết từ năm 2016. Đừng hạ cấp DB của bạn vì một công cụ. Chuyển sang một công cụ thay thế.

Cập nhật năm 2020: Sequel Pro đã chính thức chết nhưng còn sống không chính thức! Bạn có thể tìm thấy các bản dựng " hàng đêm " không có vấn đề này (tức là hỗ trợ Mysql 8 auth) tại đây: https://sequelpro.com/test-builds


Tất cả các giải pháp khác ở đây đều khuyên bạn nên thay đổi cài đặt DB của bạn (làm cho nó kém an toàn hơn, như được MySQL quảng cáo) cho công cụ bạn đang sử dụng. Điều đó không thể chấp nhận được đối với tôi.

Tôi luôn là một fan hâm mộ lớn của Sequel Pro, thậm chí còn được tặng cho nó. Nhưng, với tất cả niềm đam mê và tình yêu của mình, tôi rất tiếc nếu công cụ không có bất kỳ bản phát hành nào kể từ năm 2016 . YOLO, và tôi cần phải tiếp tục!

Tôi thay thế được tìm thấy (từ https://stackoverflow.com/a/55235533/2321594 , nhờ @arcseldon) là DBeaver mà hỗ trợ phương pháp mới xác thực (phi legacy) MySQL 8 của.

Tái bút. Mẹo duy nhất ở phía công cụ, không phải phía DB là khi bạn đang tạo kết nối MySQL 8, bạn có thể cần phải đi tới "Thuộc tính trình điều khiển" (sau này có thể tìm thấy trong Chỉnh sửa kết nối) và chuyển giá trị allowPublicKeyRetrievalthành true.

Tôi cần cái này để kết nối với vùng chứa MySQL của tôi được tạo bằng Docker. Để IP của MySQL hiển thị ra bên ngoài, đối với bất kỳ ứng dụng nào khác trong hệ sinh thái của bạn (không chỉ công cụ này), bạn nên tạo một người dùng mới trong MySQL hoặc chuyển -e MYSQL_ROOT_HOST=%trong thời gian chạy hoặc dưới dạng ENV.


Tôi tin rằng @Aidin bạn đã phản đối tôi chỉ vì câu trả lời của tôi không giải quyết được vấn đề OP. Đó chỉ là sự phát triển cục bộ và cài đặt cục bộ- vậy vấn đề là gì? Tôi có thực sự phải rời bỏ phần mềm mà tôi quen thuộc và tôi thích làm việc chỉ vì bạn nói vậy không?
Maciej Kwas

5
Xin đừng coi nó là cá nhân @MaciejKwas. Mặc dù cung cấp thêm lời giải thích ở đây, mà tôi đánh giá cao, tôi vẫn đứng về phía mình. Ba lý do chính là: 1) Việc duy trì thiết lập khác nhau giữa các nhà phát triển / sản phẩm không được khuyến khích trong phát triển phần mềm hiện đại. Trên thực tế, đó là yếu tố X của 12factor.net/dev-prod-parity . 2) Mọi người cũng có thể sử dụng các công cụ này để kiểm tra sản phẩm. Bạn có thể tạo ssh-tunnel / proxy và truy cập DB sản phẩm của mình thông qua công cụ GUI. Trong những trường hợp như vậy, hạ cấp ủy quyền DB không phải là một tùy chọn. 3) Cá nhân tôi không đánh giá cao việc không thích nghi với sự thay đổi và nâng cấp.
Aidin

1
Tôi đang trở lại với một dự án MySQL tôi đã không chạy cục bộ trong một vài năm b / c nó được đá rắn và tôi cảm thấy rất buồn khi phát hiện ra rằng phần tiếp theo pro là chết :(
cá da trơn

Cũng chọn trình điều khiển MySQL +8 trong DBeaver vì có nhiều trình điều khiển để lựa chọn. Trong thuộc tính trình điều khiển, đặt allowPublicKeyRetrieval thành true và lưu.
Peheje

18
  1. Giả sử bạn không có cấu hình mysql , hãy lặp lại phần sau để~/.my.conf
[mysqld]
default-authentication-plugin=mysql_native_password
  1. Đăng nhập vào mysql bằngmysql -u root -p
  2. Đặt mật khẩu người dùng gốc với ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '[PASSWORD]';vị trí [PASSWORD]là mật khẩu bạn chọn.
  3. Khởi động lại mysql với ví dụbrew services restart mysql

8

Sequel Pro đã chính thức bị khai tử và không còn hỗ trợ các tính năng MySql mới hơn. Tuy nhiên, tin tốt là nó đã được thay thế bằng Sequel Ace hiện có trên GitHubApp store . Ứng dụng này miễn phí và có vẻ như là ứng dụng thay thế chính thức cho Sequel Pro như bài đăng được thực hiện bởi một trong những cộng tác viên của Sequel Pro .

Ps. Tôi quyết định đăng bài này như một câu trả lời vì những người khác đã không đề cập rằng hiện đã có bản thay thế cập nhật cho Sequel Pro


Cảm ơn vì tin tức, đánh giá cao.
Hattori Hanzō

Cuối cùng! Đã đợi một thời gian.
Jonny

6

Nếu bạn kết nối với MySQL qua root@127.0.0.1, hãy đảm bảo rằng bạn cũng đặt lại mật khẩu của nó!

ALTER USER 'root'@'127.0.0.1' ĐƯỢC XÁC ĐỊNH VỚI mysql_native_password BY '[password]';


Tôi nhận được: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

hãy thử điều này trên thiết bị đầu cuối: mysql_upgrade --force -uroot -p
Xeno

mysql_upgrade hiện đã không được dùng nữa và sẽ không hoạt động, hãy sử dụng mysqld --upgrade = FORCE để thay thế.
ilovecookiez11

1

Nếu bất cứ ai gặp phải vấn đề này và cài đặt MySQL version >8thông qua .dmgtải xuống từ liên kết chính thức. Trong trường hợp đó, vui lòng sử dụng hướng dẫn này .


1
Tôi sử dụng mật khẩu kiểu cũ. Cảm ơn bạn!
Richard Witherspoon

1

Nó làm việc cho tôi. nếu bạn gặp lỗi này:

Không thể kết nối với máy chủ 127.0.0.1 hoặc yêu cầu đã hết thời gian chờ.

Đảm bảo rằng địa chỉ là chính xác và bạn có các đặc quyền cần thiết hoặc thử tăng thời gian chờ kết nối (hiện tại là 10 giây).

MySQL cho biết: Không thể tải plugin xác thực 'caching_sha2_password': dlopen (/usr/local/lib/plugin/caching_sha2_password.so, 2):

Làm ơn hãy thử giải pháp này

nhập mô tả hình ảnh ở đây


Làm việc như người ở.
Jimmy Adaro
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.