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

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

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

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

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

Ответ 1

Вы можете изменить шифрование пароля пользователя, изменив пользователя с помощью команды 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.

Спасибо

Ответ 2

Примечание. Для MAC OS

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

Image description

Ответ 3

вы можете изменить шифрование пароля следующим образом.

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

Ответ 4

Для 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 и снова откройте Workbench.

Ответ 5

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

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

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

Ответ 6

У меня была та же проблема, но ответ Амана Аггарвала не сработал для меня с контейнером 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';

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

Ответ 7

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

MySQL Web Installer - Home Screen

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

MySQL Installer - Authentication Method

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

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

Ответ 9

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

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

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

Моя установка 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 типа caching_sha2_password, работают. Но sequelpro - это НЕТ GO с MySql.

Наконец, я отказался от 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;

Ответ 10

-Open Клиент командной строки MySQL

-Create новый пользователь с новым пропуском

Рассматривая пример пути к папке 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';

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

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

Image

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

Ответ 11

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

Я установил MySQL на 5.7 и перестроил образ, и он работал нормально:

version: '2'
services: 
  db:
   image: mysql:5.7

Ответ 12

Это определение моей базы данных в моей докере:

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 |
+---+

Ответ 13

Для Windows 10,

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

[туздЫ] default_authentication_plugin = mysql_native_password

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

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

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

СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'user' @'localhost' IDENTIFIED BY 'password';

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

ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ НА *. * TO 'user' @'localhost';

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

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

Ответ 14

Вот решение, которое работало для меня после установки 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'

Ответ 15

Если вы получаете эту ошибку в 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!)

Ответ 16

Почти как ответы выше, но, возможно, в простых запросах, я получал эту ошибку в моем весеннем загрузочном приложении наряду с 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';

Ответ 17

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

Ответ 18

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

Ответ 19

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

step 1

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

step 2

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

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

см.: fooobar.com/questions/2461051/...

Благодарю.

Ответ 20

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

Ответ 21

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

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

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

enter image description here

Ответ 22

я нашел это

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

не работал сам по себе. Мне также нужно было установить

[mysqld]
    default_authentication_plugin=mysql_native_password

в /etc/mysql/mysql.conf.d/mysqld.cnf в Ubuntu 18.04 с PHP 7.0

Ответ 23

Я отказался от моего файла для компоновки docker, чтобы использовать вариант версии mysql версии 5. Потому что я понятия не имею, почему mysql 8 внезапно сталкивается с этими проблемами, из-за чего я не могу удаленно подключиться к нему с первого раза.

Ответ 24

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

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

Ответ 25

Если вы пытаетесь подключиться к серверу MySQL из текстового клиента MySQL с другого компьютера (будь то Docker или нет)

Большинство ответов здесь включают подключение с настольного клиента или просьбу переключиться на более старый метод аутентификации. Если вы подключаете его с клиентом MySQL (текстовым), я заставлю его работать с Debian Buster в контейнере Docker.

Скажем, у вас настроена система apt и wget, выполните следующие действия:

  1. sudo apt-get update
  2. sudo apt-get install lsb-release -y
  3. Загрузите пакет Debian, который обновляет apt-источники для вас, с веб-сайта MySQL.
  4. sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb и выберите нужные параметры. В моем случае мне нужно только включить MySQL Tools & Connectors.
  5. sudo apt-get update
  6. sudo apt-get install mysql-client -y
  7. Готово. Теперь вы можете запустить новый клиент MySQL и подключиться с новым методом аутентификации.

Ответ 26

Я решил эту проблему, установив MySQL 5.7:

Шаг 1 - Включить репозиторий MySQL

Прежде всего, вам необходимо включить репозиторий yum сообщества MySQL 5.7 в вашей системе. Пакеты rpm для конфигурации репозитория yum доступны на официальном сайте MySQL. Используйте одну из следующих команд в соответствии с версией вашей операционной системы.

На CentOS и RHEL 7

yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

На CentOS и RHEL 6

yum localinstall https://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm

На Fedora 27

dnf install https://dev.mysql.com/get/mysql57-community-release-fc27-9.noarch.rpm

На Fedora 26

dnf install https://dev.mysql.com/get/mysql57-community-release-fc26-9.noarch.rpm

На Fedora 25

dnf install https://dev.mysql.com/get/mysql57-community-release-fc25-9.noarch.rpm

Шаг 2 - Установите MySQL 5.7 Server

Как вы успешно включили MySQL yum репозиторий в вашей системе. Теперь установите сервер сообщества MySQL 5.7, используя следующие команды в соответствии с версией вашей операционной системы.

На CentOS и RHEL 7/6

yum install mysql-community-server

На Fedora 27/26/25

 dnf install mysql-community-server

источник: https://tecadmin.net/install-mysql-5-7-centos-rhel/

Ответ 27

Откат к предыдущим установкам (на MySQL Community Server 5.7 и Workbench 6.1) и настройка новых учетных данных MySQL помогли мне!