Плагин аутентификации '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)".
Оставьте все как есть, и вот как я решил свою проблему.
Ответ 8
как это?
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.
Ответ 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
-
Перезапустите службу MySQL
-
войдите в MySQL в командной строке, выполните следующие команды в MySQL
-
Создайте нового пользователя
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'user' @'localhost' IDENTIFIED BY 'password';
- Предоставить все привилегии
ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ НА *. * TO 'user' @'localhost';
- Откройте 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, выполните следующие действия:
sudo apt-get update
sudo apt-get install lsb-release -y
- Загрузите пакет Debian, который обновляет apt-источники для вас, с веб-сайта MySQL.
sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb
и выберите нужные параметры. В моем случае мне нужно только включить MySQL Tools & Connectors
.
sudo apt-get update
sudo apt-get install mysql-client -y
- Готово. Теперь вы можете запустить новый клиент 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 помогли мне!