указанный - mysql caching_sha2_password so




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

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

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

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

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

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


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

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

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


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

Спасибо


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

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

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

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

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

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

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


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

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

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

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

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

Благодарю.


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

Приведенное ниже решение работает для меня

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

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


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

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


Хорошо, потратил много времени на это, так что вот резюме по состоянию на 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 , работают. Но сиквельпро НЕТ 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;

Это мое определение базы данных в моем 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 |
+---+

Я решил эту проблему, установив 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/



я нашел это

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


Для 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.





mysql-8.0