Public key retrieval is not allowed mysql dbeaver ошибка

System information:

  • Operating system (distribution) and version: Pop_OS 20.4
  • DBeaver version: 7.15
  • Additional extensions: None

Connection specification:

  • Database name and version: MySQL 8.0.21
  • Driver name: mysql-connector-java:RELEASE [8.0.17]
  • Do you use tunnels or proxies (SSH, SOCKS, etc)?

Describe the problem you’re observing:

I created a docker instance with the command:

docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 mysql

But when I try to create a new connection, it throws an error saying:

Public Key Retrieval is not allowed

I saw people on stackoverflow changing the driver property AllowPublicKeyRetrieval to true and the option useSSL to false. And it really works. But when I was tweaking the properties, I found that you don’t really need to change those properties to make it work, you can just set useSSL or sslMode to another value, it can be an invalid value, and change this properties back to its default values and the connection works as intented, even if I put useSSL to false, the connection still works with no problem, unless I remove the container and create again, where the initial error returns. In my vision, if it is working with the properties manually set, it should work with the default ones too, this is why I’m submiting this as a bug. If it is not, can someone please explain why this happen?

Steps to reproduce, if exist:

  • Create a new docker container with the command:
docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 mysql
  • Create a connection for MySQL with the root user and the password 123456.

  • When testing the connection, it should throw the error saying Public Key Retrieval is not allowed.

  • Go to the tab Driver Properties, look for the option useSSL change it to false and test the connection, it should give you the same error as before.

  • Now change the property back to true, and the connection should work.

  • The connection works even if I set the property back to false. What I don’t understand.

  • Instead of changing the property to false, you can put any other invalid value, test the connection, it will throw an error saying the value is not acceptable, change the property back to true, the default value, test the connection, and it will work.

  • Instead changing the useSSL property, you can change the sslMode property. Change it from PREFERRED to DISABLED, test the connection, the error will persist, change it back to PREFERRED, the error goes away. You can, too, put a invalid value, test the connection, change it back to PREFERRED and now the connection works.

Include any warning/errors/backtraces from the logs

Dbeaver gives public key retrieval is not allowed error.

While connecting to the Dbeaver it will give the public key retrieval is not allowed error as:

Cause: Parameter allowPublicKeyRetrieval is false. allowPublicKeyRetrieval=true to allow the client to automatically request the public key from the server.

Resolution: Use the allowPublicKeyRetrieval=true

jdbc:mysql://localhost:3306/db?allowPublicKeyRetrieval=true

In Dbeaver: Go to connection then select the Driver Properties tab and change the allowPublicKeyRetrieval to true.

Я использую DBeaver для просмотра базы данных SQL в MySQL 8+.

Все работает, но иногда, открывая DBeaver, появляется следующее сообщение об ошибке:

Public Key Retrieval is not allowed

И тогда DBeaver не может подключиться к MySQL.

Чтобы решить эту проблему, мне нужно перенастроить MySQL.

Есть ли самый простой способ решить эту проблему?

2020-05-12 13:24

4
ответа

Решение

Вы пытались явно разрешить получение открытого ключа в DBeaver? В настройках подключения на вкладке SSL вы можете найти его

Это в случае, если вы используете SSL, в противном случае на том же экране вы можете отключить SSL, сняв флажки «использовать SSL» и «требовать SSL».

2020-05-16 09:37

Измените настройки на Dbeaver:

  1. Щелкните правой кнопкой мыши ваше соединение и выберите «Редактировать соединение».
  2. На экране «Настройки подключения» (главный экран) нажмите «Изменить настройки драйвера».
  3. Щелкните «Свойства соединения».
  4. Щелкните правой кнопкой мыши область «Свойства пользователя» и выберите «Добавить новое свойство».
  5. Добавьте два свойства:useSSL и allowPublicKeyRetrieval.
  6. Установите для них значения «ложь» и «истина», дважды щелкнув столбец «значение».
  7. Сохраните и проверьте соединение.

Надеюсь, это сработает!

2020-05-21 20:02

Изменить соединение

нажмите вторую вкладку «Свойства драйвера»

Изменить свойство allowPublicKeyRetrieval = True

Настройки подключения / Свойства драйвера:



08 мар ’21 в 21:00
2021-03-08 21:00

2021-03-08 21:00

Решение Ratish Bansal у меня работает на MacOS Mojave, и после этого я всегда получаю ошибку часового пояса. Решение для этого — установить мой местный часовой пояс вconnection settings:

2020-06-03 01:31

Sign in to follow this  

Followers
0

Perpetual Newbie


By
Perpetual Newbie, November 17, 2018 in General discussions

Recommended Posts

Perpetual Newbie
  

1


Perpetual Newbie

Posted November 17, 2018

Can’t connect to MySQL with DBeaver. Error:

Public Key Retrieval is not allowed

How to fix?

Share this post


Link to post
Share on other sites

C.M.
  

15


C.M.

Posted November 17, 2018

Add option allowPublicKeyRetrieval with vaule true in MySQL driver settings.

image.png.29f8f371829b899d882a544e0cd3ec09.png



  • Like


    1



  • Thanks


    1

Share this post


Link to post
Share on other sites

Perpetual Newbie
  

1


Perpetual Newbie

Posted December 4, 2019

Wow, that simple? 👀

It works now! Thanks for your help again 😊

Share this post


Link to post
Share on other sites

Everlasting Summer
  

4


Everlasting Summer

Posted August 14, 2021

17.11.2018 в 16:27, C.M. сказал:

Add option allowPublicKeyRetrieval with vaule true in MySQL driver settings.

image.png.29f8f371829b899d882a544e0cd3ec09.png

Thank you. It worked 👍

Share this post


Link to post
Share on other sites

Sign in to follow this  

Followers
0

Go To Topic Listing


Установка и настройка займет 25-35 минут

1. Скачивание установщика MySQL Server
#

Будем устанавливать MySQL как сервис в систему, нам будет необходима любая версия 8.0.x.

Скачиваем дистрибутив с официального сайта по ссылке:

https://dev.mysql.com/downloads/mysql/

Убедитесь что выбрана macOS в списке операционных систем и нажмите кнопку Download у версии с большим размером. Это версия содержит все компоненты для установки.

Untitled.png

После будет предложено зарегистрироваться, мы этого избегаем нажимая по ссылке No thanks, just start my download.

Untitled%201.png

Разрешите скачать этот файл (если вы используете Safari)

Untitled%202.png

После нажатия начнется скачивание файла вида mysql-8.0.23-macos10.15-x86_64.dmg

Дождитесь окончания скачивания файла и после откройте Finder с файлом или запустите его из списка загрузок.

Untitled%203.png

Откроется

Untitled%204.png

Двойной клик на файл .pkg и начнется установка MySQL.

2. Установка
#

При запуске MySQL, первое, вас благодарят за выбор MySQL, нажимайте Продолжить:

__2021-03-27__05.28.03.png

Далее необходимо принять лицензию на ПО для продолжения установки:

__2021-03-27__05.29.15.png

Предложат выбрать расположение сервера, уведомят о требуемом месте на жестком диске, менять настройки не требуется, нажмите Установить

__2021-03-27__05.29.58.png

Перед установкой попросят ввести пароль вашего пользователя, вводите пароль и нажимайте Установить ПО:

Untitled%205.png

Как только закончится установка, начнется конфигурация сервера MySQL.

Выбираем Use Strong Password Ecryption, так как нам не требуется совместимость с версией 5.7

__2021-03-27__05.31.29.png

После нажатия Next, будет важный этап — установка пароля для root пользователя. Минимальное требование к паролю — восемь символов.

Важно запомнить этот пароль, при его потери возможна потеря доступа в базам данных. А также может привести к переустановке MySQL

__2021-03-27__05.31.56.png

Если выставлена галочка на Start MySQL Server once..., то после завершения установки — MySQL сервер будет запущен. При нажатии на Finish, установка завершится.

__2021-03-27__05.32.24.png

Если вы видите этот экран — установка завершена успешно!

Проверка установки
#

Чтобы убедиться что mysql сервер работает, необходимо зайти в Системные настройки и в самом конце найдете MySQL:

__2021-03-27__06.14.22.png

Запускайте и увидите панель управления:

__2021-03-27__06.19.44.png

Если ваш скриншот выглядит также, то значит сервер уже работает и готов к использованию.

  • Если вам потребуется остановка сервиса нажмите Stop MySQL Server, если вновь запустить — снова нажмите на Start MySQL Server. Каждая операция потребует от вас ввода пароля.
  • Также если стоит галочка Start MySQL when your computer starts up, то MySQL будет стартовать при запуске системы. Если вы не планируете использовать MySQL постоянно, можете отключить галочку и запускать сервер при необходимости.

Так как мы убедились что сервер работает. Самое время проверить как он работает:

Проверка работы MySQL
#

Запускайте терминал и переходите в папку c исполняемыми файлами установленного MySQL:

Запускаем консоль mysql

, где мы указываем два параметра:

-u и после него указывается пользователь под которым мы хотим зайти в консоль mysql

-p после него не указываем ничего, а значит нас спросят ввести пароль отдельно. Можно пароль вводить после, например так ./mysql -u username -p 12345, но это менее безопасно. Так как пароль остается в открытом виде.

Запросят пароль от пользователя root, этот тот который был задан при установке. Как только введете верный пароль, окажетесь в консоли MySQL:

__2021-03-27__06.31.46.png

При вводе пароля, символы не будут отображаться (звездочек привычных нет), при этом символы будут вводиться.

Именно тут работают команды SQL, для проверки запросим данные по всем таблицам:

__2021-03-27__06.35.33.png

В данной консоли выполнять все команды показанные в видеоуроках.

После этого можно выйти из терминала командой exit

🌟 Настройка PATH
#

Переменная окружения PATH, содержит в себе пути, по которым идет поиск файлов для исполнения, благодаря чему не требуется набирать полный путь до исполняемого файла, а достаточно ввести его имя в консоль. У каждого пользователя может быть свой набор путей, в данном разделе мы добавим возможность запускать mysql консоль простой командой mysql, без перехода в папку /usr/local/mysql/bin каждый раз, или вызова по длинному пути: /usr/local/mysql/bin/mysql -u root -p

Для этого необходимо сделать следующие действия

  • перейти в домашнюю директорию
  • проверить, есть ли в ней файл .zchrs

Если ничего не найдено,

Untitled%206.png

создайте файл, если файл есть — откройте его в любом редакторе, в примере будет использовать консольный редактор nano.

  • создаем файл командой:

Проверим что файл создался

Untitled%207.png

Файл на месте, теперь откроем для редактирования:

Откроется редактор в который вставьте:

# add path to MySQL
export PATH=/usr/local/mysql/bin:$PATH

первая строка это комментарий, а вторая это добавление к переменной пути в исполняемую файлу, а также добавление того что уже есть в PATH.

Сохраните нажав ctrl+O и выйти из редактора ctrl+X

Чтобы активировать настройку сейчас же, выполните команду

После этого можно уже использовать mysql консоль командой

Untitled%208.png

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

3. Работа с MySQL через DBeaver
#

Кроме работы через консоль, можно использовать программы клиенты с графическим интерфейсом, предлагаем установить и работать с MySQL через одну из них.

DBeaver — это свободный кроссплатформенный менеджер баз данных для Linux, Windows и macOS. Поддерживает большое количество баз данных — MySQL, PostgreSQL, Firebird, SQLite, ODBC, Oracle и другие

4. Установка и запуск DBeaver
#

Перейдите на https://dbeaver.io/download/

Выберите колонку Community Edition и найдите ссылку на скачивание dmg:

Untitled%209.png

Если вы предпочитаете устанавливать через Homebrew, то ниже на странице скачивания есть команда для brew.

После скачивания — запускайте dmg файл и перенесите иконку Dbeaver на папку Application

Untitled%2010.png

Теперь можете через Launchpad или через Spotlight запустить DBeaver:

Untitled%2011.png

Вас могут попросить подтвердить запуск приложения в первый раз, нажимайте Открыть:

__2021-03-27__10.44.37.png

Можете согласиться с созданием тестовой бд, и посмотреть на то как работает DBeaver.

И когда закончите, создадим новое подключение. При этом сервер MySQL у вас должен быть установлен и запущен.

5. Создание подключения
#

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

Untitled%2012.png

Выберите из списка баз данных MySQL

Untitled%2013.png

Введите данные для соединения:

Параметр Значение
Сервер: locahost
Порт: 3306
Пользователь: root
Пароль: тот что задали при установке MySQL

Базу данных выбирать не надо.

Untitled%2014.png

Перед нажатием Готово выполните тест соединения Тест соединения..., если все ок то нажимайте Готово, у вас появится новое соединение.

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

__2021-03-27__11.23.56.png

📌 Если возникает ошибка `Public Key Retrieval is not allowed`

Untitled%2015.png

Зайдите в Свойства драйвера и установите значение allowPublicKeyRetrieval в значение true

Untitled%2016.png

Повторите тестирование подключения

При успешном тестировании подключении у вас будет сообщение:

Untitled%2017.png

Нажимайте ОК и Готово в окне настроек соединения.

В списке подключений у вас добавится новое:

Untitled%2018.png

6. Создание базы данных
#

Раскройте подключение и выберите в контекстом меню на элементе Базы данных пункт Создать объект “База данных”

Untitled%2019.png

Выберите указанные кодировки, и имя наберите skillbox

Untitled%2020.png

В списке Databases появится skillbox

7. Загрузка дампа в базу данных
#

В контекстном меню базы даных skillbox выберите Set as default (^⇧A), чтобы выполняемые скрипты использовали по умолчанию эту бд.

Untitled%2021.png

Через меню ФайлОткрыть файл (^O) откройте sql дамп который вам надо загрузить, например, тот что приложен к домашнему заданию.

После того как файл открылся, в панели выберите с каким сервером и какой базой данной будет работать данный код, и в завершении необходимо нажать кнопку Выполнить SQL скрипт (⌥X)

Untitled%2022.png

По завершению вы увидите сообщение о результате, сколько запросов выполнено, сколько записей было обновлено, затраченное время:

Untitled%2023.png

На скриншоте успешное выполнение. Закрывайте вкладку с открытым файлом, в дальнейшем он нам не понадобится.

Обновите структуру базы данных, чтобы нам увидеть внесенный изменения:

Untitled%2024.png

Откройте структуру базы данных skillbox и щелкните двойным кликом по таблице Courses, и перейдите во вкладку Данные:

Untitled%2025.png

На этом загрузка дампа завершена, можно работать с данными!

8. Как написать запрос к базе данных
#

Активируйте нужную базу данных выбрав в меню базы данных Задать по умолчанию, как делали перед заливкой дампа.

Далее открываем новый запрос через меню или хоткеем ^]:

Untitled%2026.png

Убедитесь что в меню указана именно база данных skillbox и напишите первый запрос, давайте получим все курсы c длительностью более 15 часов:

SELECT * FROM courses c WHERE c.duration > 15;

После того как написали запрос, запускайте его выполнение, для этого нажмите указанную кнопку или используйте клавиши ⌥X

Untitled%2027.png

Таким образом вы можете работать и базами данными и писать запросы в удобной форме. Выполнять все задания вы можете в DBeaver.

Понравилась статья? Поделить с друзьями:
  • Pubg ошибка приложения память не может быть read
  • Python ошибки при чтении файла
  • Python ошибка при установке пакетов
  • Python ошибка при установке matplotlib
  • Python ошибка при установке 0x80072f7d