Помилка підключення Sequel Pro та MySQL


95

Я щойно встановив mysql на mac з Homebrew

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): зображення не знайдено

не можу зрозуміти, чого мені не вистачає

Відповіді:


183

Це пов’язано з тим, що Sequel Pro ще не готовий до нового виду входу користувачів, оскільки в помилці зазначено: немає драйвера. Швидке виправлення для інсталяцій, що не належать до домашньої мови:

Apple Logo > System Preferences > MySQL > Initialize Database, потім введіть новий пароль і виберіть "Використовувати застарілий пароль"

Після перезапуску ви зможете підключитися. Робіть це лише при свіжих встановленнях, оскільки в іншому випадку ви можете втратити свої таблиці db.

mysql + домашнє пиво

В основному вам доведеться виконувати деякі дії вручну, однак - дані вашої бази даних не будуть видалятися, як у рішенні вище

  • Перейдіть до файлу [my.cnf] [1] і в розділі [mysqld]додайте рядок:

    default-authentication-plugin=mysql_native_password

  • Увійдіть на сервер mysql з терміналу: запустіть mysql -u root -p, потім всередині оболонки виконайте цю команду (замінивши [пароль] на ваш фактичний пароль):

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

  • вихід з оболонки mysql за допомогою exitі запуск brew services restart mysql.

Має працювати.


my.cnf

Файл my.cnf знаходиться в /etc/my.cnf на Unix / Linux


14
Я не можу знайти MySQL у Системних налаштуваннях
Хатторі Ханзо

2
спасибі за пояснення, але не можу знайти my.cnfфайл на моїй машині (macOS High Sierra 10.13.5)
Хатторі Ханцо

2
Якщо такого файлу немає, вам доведеться створити його: будь ласка, подивіться на цю тему: stackoverflow.com/questions/7973927/…
Maciej Kwas

14
Це чудово працювало на свіжому brew install mysqlвикористанні/usr/local/etc/my.cnf
mintwhip

5
Я не використовував пароль, тому використовував ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';- це в мене спрацювало
Вінсент Танг

33

TL; DR: Sequel Pro помер з 2016 року. Не знижуйте свою базу даних через інструмент. Перейдіть до альтернативного інструменту.

Оновлення 2020: Sequel Pro офіційно мертвий, але неофіційно живий! Ви можете знайти " нічні " збірки, у яких немає цієї проблеми (тобто підтримувати Mysql 8 auth) тут: https://sequelpro.com/test-builds


Усі інші рішення тут рекомендують змінити налаштування БД (зробити їх менш безпечними, як рекламує MySQL) для інструменту, який ви використовуєте. Це неприйнятно для мене.

Я завжди був шанувальником Sequel Pro, навіть подарував йому. Але, з усією своєю пристрастю та любов’ю, мені шкода, якщо інструмент не випускав жодної версії з 2016 року . YOLO, і мені потрібно рухатися далі!

Я знайшов альтернативу (з https://stackoverflow.com/a/55235533/2321594 , завдяки @arcseldon) - DBeaver, який підтримує новий метод автентифікації MySQL 8 (не застарілий).

PS. Єдина хитрість на стороні інструменту, а не на стороні БД, - це те, коли ви створюєте з'єднання MySQL 8, можливо, вам доведеться перейти до "Властивості драйвера" (пізніше можна знайти в "Редагувати підключення") і повернути значення allowPublicKeyRetrievalна true.

Мені це потрібно було для підключення до мого контейнера MySQL, створеного за допомогою Docker. Щоб IP MySQL був видимим зовні, для будь-якого іншого додатка у вашій екосистемі (а не лише цього інструменту) вам слід або створити нового користувача в MySQL, або передати -e MYSQL_ROOT_HOST=%під час виконання або як ENV.


Я вважаю, що @Aidin ви дали мені голос проти тому, що моя відповідь не вирішує проблему з OP. Це просто місцевий розвиток та місцеві налаштування - то який сенс? Чи справді я повинен залишити знайоме мені програмне забезпечення, з яким мені подобається працювати, лише тому, що ти так кажеш?
Maciej

5
Будь ласка, не приймайте це особисто @MaciejKwas. Незважаючи на надання тут додаткових пояснень, які я ціную, я все ще дотримуюсь свого голосу. Три основні причини: 1) Під час сучасної розробки програмного забезпечення не рекомендується підтримувати різні налаштування між розробниками та розробниками. Фактично це фактор X з 12factor.net/dev-prod-parity . 2) Люди можуть також використовувати ці інструменти для перевірки продукту. Ви можете створити ssh-тунель / проксі-сервер і дістатися до вашої прод БД за допомогою інструменту графічного інтерфейсу. У таких випадках зниження рівня автентичності БД не є можливим. 3) Не пристосовуватися до змін та модернізації - це те, що я особисто не ціную.
Aidin

1
Я повертаюся до проекту MySQL, який я не запускав локально протягом декількох років. B / c це було твердо, і мені так сумно дізнатися, що продовження pro мертве :(
Сом

Також виберіть драйвер MySQL +8 у DBeaver, оскільки на вибір є кілька драйверів. У властивостях драйвера встановіть allowPublicKeyRetrieval значення true та save.
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

8

Sequel Pro офіційно мертвий і більше не підтримує новіші функції MySql. Однак хороша новина полягає в тому, що його замінив Sequel Ace, який доступний на GitHub та в App Store . Додаток є безкоштовним і виглядає як офіційна заміна Sequel Pro, оскільки публікацію зробив один із співавторів Sequel Pro .

Ps. Я вирішив опублікувати це як відповідь, оскільки інші не згадували, що зараз існує нова заміна Sequel Pro


Дякуємо за новини, дуже вдячні.
Хатторі Ханзо

Нарешті! Чекав деякий час.
Джонні,

6

Якщо ви підключаєтесь до MySQL через root@127.0.0.1, переконайтеся, що ви також скинули його пароль!

ЗМІНИТИ КОРИСТУВАЧА 'root'@'127.0.0.1' ІДЕНТИФІКОВАНО З mysql_native_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.
Ченс Сміт

спробуйте це на терміналі: mysql_upgrade --force -uroot -p
Xeno

mysql_upgrade тепер застарів і не працюватиме, використовуйте замість цього mysqld --upgrade = FORCE.
ilovecookiez11

1

Якщо хтось стикається з цією проблемою і встановлюється MySQL version >8через .dmgзавантаження за офіційним посиланням. У такому випадку, будь ласка, скористайтеся цим керівництвом .


1
Використання пароля старого стилю мені підходило. Дякую!
Річард Візерспун,

1

Це працює для мене. якщо ви отримуєте цю помилку:

Не вдалося підключитися до хосту 127.0.0.1 або час очікування минув.

Переконайтеся, що адреса правильна і що у вас є необхідні привілеї, або спробуйте збільшити час очікування з’єднання (на даний момент 10 секунд).

MySQL сказав: Плагін автентифікації 'caching_sha2_password' не можна завантажити: dlopen (/usr/local/lib/plugin/caching_sha2_password.so, 2):

Plz спробуйте це рішення

введіть тут опис зображення


Працював як оберіг.
Джиммі Адаро,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.