Не удалось выполнить соединение Sequel Pro и MySQL

Я только что установил mysql на mac из Homebrew

brew install mysql

mysql -V

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

от терминала он работает, и я могу войти в mysql, но из Sequel Pro это говорит

enter image description here

Не удалось подключиться к узлу 127.0.0.1 или время ожидания запроса.

Убедитесь, что адрес верен и у вас есть необходимые привилегии, или попробуйте увеличить время ожидания подключения (в настоящее время 10 секунд).

MySQL сказал: плагин аутентификации 'caching_sha2_password' не может быть загружен: dlopen (/usr/local/lib/plugin/caching_sha2_password.so, 2): изображение не найдено

не могу понять, что мне не хватает

Ответ 1

Это связано с тем, что Sequel Pro еще не готов к новому виду входа в систему, поскольку в сообщении об ошибке указано, что драйвера нет. Быстрое исправление для инсталляций, отличных от доморощенных:

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

После перезагрузки вы сможете подключиться. Делайте это только при новой установке, иначе вы можете потерять свои таблицы БД.

mysql + homebrew

В основном вам придется выполнять некоторые действия вручную, however- данные вашей базы данных не будут удалены, как в приведенном выше решении

  • Перейдите в файл [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

Ответ 2

  1. Предполагая, что у вас нет конфигурации mysql, ~/.my.conf следующее в ~/.my.conf:
[mysqld]
default-authentication-plugin=mysql_native_password
  1. Войдите в mysql с помощью mysql -u root -p
  2. Установите пароль пользователя root с помощью команды ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '[PASSWORD]'; где [PASSWORD] - это пароль по вашему выбору.
  3. Перезапустите MySQL с помощью, например, brew services restart mysql

Ответ 3

TL; DR: Sequel Pro не работает с 2016 года. Не понижайте вашу БД из-за инструмента. Перейдите к альтернативному инструменту.


Все остальные решения здесь рекомендуют изменить настройки вашей БД (делая ее менее защищенной, как рекламируется MySQL) для используемого вами инструмента. Это не приемлемо для меня.

Я всегда был большим поклонником Sequel Pro, даже пожертвовал ему. Но, со всей моей страстью и любовью, мне жаль, если у этого инструмента нет релиза с 2016 года. ЙОЛО, и мне нужно двигаться дальше!

Альтернатива, которую я нашел (из fooobar.com/questions/2461051/..., благодаря @arcseldon), - это DBeaver, который поддерживает новый метод аутентификации (не устаревший) MySQL 8.

PS. Единственная хитрость на стороне инструмента, а не на стороне БД, заключается в том, что при создании соединения MySQL 8 вам может потребоваться перейти в "Свойства драйвера" (позже можно найти в "Редактировать соединение") и повернуть значение от allowPublicKeyRetrieval до true.

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

Ответ 4

Если вы подключаетесь к MySQL через [email protected], убедитесь, что вы также сбросили его пароль!

ALTER USER 'root'@'127.0.0.1' ИДЕНТИФИЦИРОВАНО С mysql_native_password BY '[пароль]';