it-swarm.com.ru

Плагин аутентификации caching_sha2_password не может быть загружен

Я соединяю MySQL - 8.0 с MySQL Workbench и получаю следующую ошибку:

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

Я пробовал и с другим клиентским инструментом.

Любое решение для этого?

303
Aman Aggarwal

Вы можете изменить шифрование пароля пользователя, изменив пользователя с помощью следующей команды Alter:

ALTER USER 'username' @ 'ip_address' ИДЕНТИФИЦИРОВАНО С mysql_native_password BY 'password';

ИЛИ

Мы можем избежать этой ошибки, заставив ее работать со старым плагином пароля:

Сначала измените плагин аутентификации в файл my.cnf для Linux/файл my.ini в Windows:

[ТуздЫ]

default_authentication_plugin = mysql_native_password

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

Если все еще не удается подключиться и получить приведенную ниже ошибку:

Unable to load plugin 'caching_sha2_password'

Это означает, что вашему пользователю нужен вышеуказанный плагин. Поэтому попробуйте создать нового пользователя командой create user или grant после изменения плагина по умолчанию. тогда новому пользователю нужен собственный плагин, и вы сможете подключить MySQL.

Спасибо

76
Aman Aggarwal

Примечание: для MAC OS

  1. Откройте MySQL из Системных настроек> Инициализировать базу данных>
  2. Введите новый пароль.
  3. Выберите "Использовать старый пароль"
  4. Запустите сервер снова.
  5. Теперь подключите MySQL Workbench

Image description

201
Santhosh Sivan

вы можете изменить шифрование пароля, как это.

ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'youpassword';
127
twocold

Для Windows 10: Откройте командную строку

cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"

C:\Program Files\MySQL\MySQL Server 8.0\bin> mysql -u root -p
Enter password: *********

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newrootpassword';
Query OK, 0 rows affected (0.10 sec)

mysql> exit

Кроме того, вы можете изменить конфигурацию my.ini следующим образом:

[ТуздЫ]

default_authentication_plugin = mysql_native_password

Перезапустите MySQL Server и снова откройте Workbench.

72
Araz Ghazaryan

В настоящее время (2018/04/23) вам необходимо загрузить релиз разработки . GA не работают.

Мне не удалось подключиться к последней версии GA (6.3.10).

Он работал с mysql-workbench-community-8.0.11-rc-winx64.msi (из https://dev.mysql.com/downloads/workbench/ , вкладка для разработчиков ) ,.

68
Montecarlo

У меня была та же проблема, но ответ Амана Аггарвала не сработал для меня с контейнером Docker, на котором запущен mysql 8.X. Я зашел в контейнер

docker exec -it CONTAINER_ID bash

затем войдите в MySQL как root

mysql --user=root --password

Введите пароль для пользователя root (по умолчанию "root"). Наконец, выполните:

ALTER USER 'username' IDENTIFIED WITH mysql_native_password BY 'password';

Вы все готово.

42
axelferreira

Я устанавливал MySQL на свой ПК с Windows 10 с помощью " MySQL Web Installer " и столкнулся с той же проблемой при попытке подключения с использованием MySQL Workbench. Я исправил проблему, перенастроив сервер из окна установщика.

MySQL Web Installer - Home Screen

Нажав на опцию "Reconfigure", вы сможете перенастроить сервер. Нажимайте "Далее", пока не дойдете до "Метод аутентификации".

MySQL Installer - Authentication Method

На этой вкладке используйте второй параметр "Использовать устаревший метод аутентификации (сохранить совместимость с MySQL 5.x)".

Оставьте все как есть, и вот как я решил свою проблему.

39
ImtiazeA

как это?

docker run -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d mysql --default-authentication-plugin=mysql_native_password
mysql -uroot --protocol tcp

попробуйте в PWD

https://github.com/GitHub30/docs/blob/change-default_authentication_plugin/mysql/stack.yml

или вы должны использовать MySQL Workbench 8.0.11.

30
井上智文

Хорошо, потрачено много времени на это, поэтому вот краткое изложение на 19 марта 2019 года

Если вы специально пытаетесь использовать образ Docker с MySql 8 + , а затем использовать SequelPro чтобы получить доступ к вашей базе данных (базам данных), запущенной в этом док-контейнере, вам не повезло.

Смотрите выпуск sequelpro 2699

Моя установка sequelpro 1.1.2 с использованием Docker Desktop 2.0.3.0 (Mac - Mojave), и попытался с помощью mysql: latest (v8.0.15).

Как сообщали другие, использование mysql 5.7 работает без необходимости:

docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=secret -d mysql:5.7

Конечно, можно использовать MySql 8+ на докере, и в этой ситуации (при необходимости) другие ответы, предоставленные здесь для проблем типа caching_sha2_password, работают. Но сиквельпро НЕТ GO с MySql 8+

Наконец, я отказался от sequelpro (надежного друга из 2013-2014 годов) и вместо этого установил DBeaver . Все работало из коробки. Для докера я использовал:

docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=secret -d mysql:latest --default-authentication-plugin=mysql_native_password

Вы можете быстро просмотреть базы данных mysql, используя:

docker exec -it mysql1 bash

mysql -u root -p

show databases;
19
arcseldon

Открытый клиент командной строки MySQL

Создать нового пользователя с новым проходом

Рассматривая пример пути к папке bin сверху, вот код, который нужно запустить в командной строке, строка за строкой:

cd C:\Program Files\MySQL\MySQL Server 5.7\bin
MySQL -u root -p    
current password...***  
CREATE USER 'nativeuser'@'localhost'  
IDENTIFIED WITH mysql_native_password BY 'new_password';

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

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

Image

Вежливость: Ответы на часто задаваемые вопросы UDEMY от Career365

16
Ahmed Ziyad

Для тех, кто использует Docker или Docker Compose, я столкнулся с этой ошибкой, потому что я не установил версию своего образа MySQL. Докер автоматически попытается получить последнюю версию, которая является 8.

Я установил MySQL на 5.7 и перестроил образ, и он работал как обычно:

version: '2'
services: 
  db:
   image: mysql:5.7
12
Dylan Pierce

Это мое определение базы данных в моем docker-compose:

dataBase:
    image: mysql:8.0
    volumes:
        - db_data:/var/lib/mysql
    networks:
        z-net:
            ipv4_address: 172.26.0.2
    restart: always
    entrypoint: ['docker-entrypoint.sh', '--default-authentication-plugin=mysql_native_password']
    environment:
        MYSQL_ROOT_PASSWORD: supersecret
        MYSQL_DATABASE: zdb
        MYSQL_USER: zuser
        MYSQL_PASSWORD: zpass
    ports:
        - "3333:3306"

Соответствующая строка там точка входа.

После сборки и сборки вы можете протестировать его:

$ mysql -u zuser -pzpass --Host=172.26.0.2  zdb -e "select 1;"
Warning: Using a password on the command line interface can be insecure.
+---+
| 1 |
+---+
| 1 |
+---+
11
Maximiliano de Mattos

для Windows 1,

  1. Изменить my.ini файл в ** C:\ProgramData\MySQL\MySQL Server 8.0 **

[mysqld] default_authentication_plugin = mysql_native_password

  1. Перезапустите службу MySQL

  2. войдите в MySQL в командной строке, выполните следующие команды в MySQL

  3. Создать нового пользователя

СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'user' @ 'localhost', ИДЕНТИФИЦИРОВАННОГО 'password';

  1. Предоставить все привилегии

Предоставить все права на *. * TO 'user' @ 'localhost';

  1. Откройте MySQL Workbench, откройте новое соединение, используя новые учетные данные пользователя

Я столкнулся с той же проблемой, и это сработало.

10
Preetham

Вот решение, которое работало для меня после установки MySQL 8.0 на Windows 10.

Предположим, что имя пользователя MySQL root и пароль admin

Откройте командную строку и введите следующие команды:

cd C:\Program Files\MySQL\MySQL Server 8.0\bin

mysql_upgrade -uroot -padmin

mysql -uroot -padmin

ALTER USER 'root' @ 'localhost' ИДЕНТИФИЦИРОВАНО С mysql_native_password BY 'admin'

7
Pratik Patil

Если вы получаете эту ошибку на GitLab CI, как я: просто перейдите с последней версии на 5.7;)

# .gitlab-ci.yml

rspec:
  services:
    # - mysql:latest (I'm using latest version and it causes error)
    - mysql:5.7 #(then I've changed to this specific version and fix!)
6
Bruno Casali

Почти как ответы выше, но, возможно, в простых запросах, я получал эту ошибку в моем весеннем загрузочном приложении наряду с hibernate после обновления MySQL. Мы создали нового пользователя, запустив приведенные ниже запросы к нашей БД. Я считаю, что это временная работа, чтобы использовать sha256_password вместо последней и хорошей аутентификации caching_sha2_password.

CREATE USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pa$$Word';

GRANT ALL PRIVILEGES ON * .* TO 'username'@'localhost';
5
Vikky

Для меня это начало происходить, потому что в проекте я использовал образ Docker mysql: latest (который был версии 5 и работал нормально), а во время более поздней сборки последняя версия была переключена на версию 8, и перестал работать . Я изменил свое изображение на mysql: 5 и я больше не получаю эту ошибку .

5
alberto56

MySQLWorkbench 8.0.11 для macOS решает эту проблему. Я могу установить соединение с защищенным паролем экземпляром mysql, запущенным в Docker.

4
Benjamin Lin

Откройте мою команду sql:

step 1

затем введите пароль MySQL

step 2

наконец, используйте:

ALTER USER 'username'@'ip_address' IDENTIFIED WITH mysql_native_password BY 'password';

см: https://stackoverflow.com/a/49228443/6097074

Благодарю.

3
ankit

Эта ошибка возникает, когда используемый инструмент несовместим с MySQL8, попробуйте обновить до последней версии MySQL Workbench для MySQL8

1
Shammoo

Приведенное ниже решение сработало для меня enter image description here

Перейдите в Mysql Workbench -> Сервер-> Пользователи и привилегии. 1.Нажмите Добавить учетную запись.

2. Под вкладкой "Вход в систему" ​​представлены новые сведения и убедитесь, что тип аутентификации выбран как , а также выбраны соответствующие административные роли и привилегии схемы.

enter image description here

1
Deepak rkm

Загрузка макета 8.0.11-rc работала для меня на Mac. с помощью следующих команд Docker:

docker run --name mysql -p 3406:3306 -e MYSQL_ROOT_PASSWORD=mypassword -d mysql
0
Daniel Adigun