'Caching_sha2_password' kimlik doğrulama eklentisi yüklenemiyor


435

MySQL - 8.0'ı MySQL Workbench ile bağlayıp aşağıdaki hatayı alıyorum:

'Caching_sha2_password' kimlik doğrulama eklentisi yüklenemiyor: dlopen (/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2): resim bulunamadı

Diğer istemci aracıyla da denedim.

Bunun için bir çözüm var mı?


2
MySQL 8.0'ı mysql_native_password modunda çalışacak şekilde yapılandırırsanız bu sorunu düzeltebilirsiniz.
Raymond Nijland

6
Doğru, MySQL Workbench'in önbelleğe alınmış sha2 şifreleriyle (yakında) çalışabilmesi için bir bağlayıcı güncellemesine ihtiyacı var.
Mike Lischke

7
Varsayılan giriş ayarını yerel olarak ayarladım ve yeniden başlattım, sorun devam ediyor ve yeni bir kullanıcı oluşturmak için giriş yapamıyorum. 2018'de bir kurulum Mysql ve tezgahın kutuyu bitirmemesi şaşırtıcı. Çaput kalite kontrolü.
ChrisR

1
Artık 32bit mysql istemci kütüphanesi olmayacağı izlenimini nereden aldığını bilmiyorum, ama bu doğru değil. Doğru olan, MySQL Workbench'in artık 32bit sürümüyle gelmemesidir.
Mike Lischke

2
Daha zayıf şifreleme kullanmayı öneren bu yanıtlar doğru yol değildir. Tableplus gibi diğer istemcileri kullanın .
Ocak

Yanıtlar:


279

Not: MAC OS için

  1. MySQL'i Sistem Tercihleri> Veritabanını Başlat> öğesinden açın>
  2. Yeni şifrenizi yazın.
  3. 'Eski şifreyi kullan'ı seçin
  4. Sunucuyu yeniden başlatın.
  5. Şimdi MySQL Workbench'i bağlayın

görüntü açıklaması


Bu OSX'te yardımcı oldu
Salam

2
Bu iş, teşekkürler. MySQL tezgah DB sunucusuna bağlanmak için eski parola şifreleme kullandığından işe yaradığını düşünüyorum. MySQL'i kurarken ve önerilen Güçlü şifre şifrelemesi yerine Eski şifrelemeyi seçerken de yapılabilir.
monkSinha

1
Bazı sürümler mysql farklı bir ayar paneli var ve bu işe yaramaz
Michael Yang

8
Eski ve daha az güvenli kimlik doğrulamasına geri dönmek için reklam yapmak hiç de iyi bir çözüm değildir .
Mike Lischke

63
Sistem Tercihlerinde MySQL yok
JavaRunner

248

parolanın şifrelemesini bu şekilde değiştirebilirsiniz.

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

33
OP yepyeni harika kimlik doğrulama yöntemini kullanmak isterse ne olur?
LibertyPaul

@twocold, güzel senaryo sorgusu + 1
Md Haidar Ali Khan

Kullanıcı adınızın ve şifrenizin @twocold kodunda gösterildiği gibi tek tırnak işaretleri içine alınması gerektiğini unutmayın.
matris

@twocold Bunu yaptıktan sonra yukarıdaki ALTER USER'ı MySQL 8.0 standardına (yeni şifreleme düzeyi) nasıl geri alırsınız?
Will Belden

1
@BrianFitzGerald "caching_sha2_password", buraya veya buraya bağlantı .
Yan Karin

114

Windows 10 için:

Komut istemini açın:

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

Alternatif olarak, my.ini yapılandırmasını aşağıdaki gibi değiştirebilirsiniz :

[mysqld]

default_authentication_plugin=mysql_native_password

MySQL Sunucusunu yeniden başlatın ve Workbench'i tekrar açın.


1
My.ini dosyasını değiştirmek benim için işe yaramaz - ancak komut istemi değişikliği işe yaradı.
amelvin

My.ini dosyasını değiştirmek sorunumu çözdü. Teşekkürler.
berkant


Sadece yapılandırmanın bağlanmak istediğiniz sunucuda yapılması gerektiğini ve ALTER USER, Windows'tan uzak bir mysql sunucusuna bağlanmam için çalıştı
Alcides

Windows 10 ile sınırlı değil
Geza Turi

76

Aşağıdaki Alter komutuyla kullanıcıyı değiştirerek kullanıcı şifresinin şifrelemesini değiştirebilirsiniz:

ALTER USER 'kullanıcı adı' @ 'ip_adresi' mysql_native_password İLE TANIMLANMIŞ 'şifre' İLE;

VEYA

Eski şifre eklentisiyle çalışmasını sağlayarak bu hatayı önleyebiliriz:

İlk olarak Windows'ta Linux / my.ini dosyası için my.cnf dosyasındaki kimlik doğrulama eklentisini değiştirin :

[Mysqld]

default_authentication_plugin = mysql_native_password

Etkilenen değişiklikleri almak için mysql sunucusunu yeniden başlatın ve MySQL ile herhangi bir mysql istemcisine bağlanmayı deneyin.

Hala bağlanamıyor ve aşağıdaki hatayı alıyorsanız:

Unable to load plugin 'caching_sha2_password'

Bu, kullanıcının yukarıdaki eklentiye ihtiyacı olduğu anlamına gelir. Bu nedenle, varsayılan eklentiyi değiştirdikten sonra create user veya grant komutuyla yeni kullanıcı oluşturmayı deneyin. yeni kullanıcının yerel eklentiye ihtiyacı vardır ve MySQL'e bağlanabilirsiniz.

Teşekkürler


5
Kesinlikle eklenti eksik sorunun bir çözümü değildir.
LibertyPaul

1
Bu. Sorun şu ki DB yönetim yazılımları henüz işlemiyor. Yani bir mysql tezgah devi değilseniz, bu sizin için geçici çözümdür.
Kevin Gagnon

Benim için çalıştı. Teşekkürler
Lucas Araújo

Yapılandırma bayrağını ekledikten sonra yeni bir kullanıcı oluşturmayla ilgili bölüm çok önemlidir.
nipponese

70

Şu anda (2018/04/23 tarihinde), bir geliştirme sürümü indirmeniz gerekiyor . GA olanları işe yaramaz.

En son GA sürümüyle (6.3.10) bağlantı kuramadım.

Şununla çalıştı mysql-workbench-community-8.0.11-rc-winx64.msi( https://dev.mysql.com/downloads/workbench/ , Sekme Geliştirme Sürümleri'nden ).


4
Bu aslında doğru cevaptır: MySQL 8.0, ne yazık ki hala beta modunda görünen MySQL Workbench 8.0 gerektirir. Ancak kurulduktan sonra yeni SHA şifre şifrelemesine bağlı kalabilirsiniz, hiçbir şeyi değiştirmenize gerek yoktur.
Cristi

Beta değil, sürüm adayı (RC). GA (genellikle kullanılabilir) sürüm yakında kullanıma sunulacak.
Mike Lischke

Benim için en iyi fikir.
Wojciech Fornal

2
Bu hala geçerli. GA sürümünün yüklenmesi yine de önerilen şifre şifrelemesini kullanarak oturum açamamaya neden olur. GA sürümünün yalnızca eski kimlik doğrulamasıyla çalıştığına dair bir uyarı yoktur.
Donald Rich

2
En azından MacOS'ta GA sürümü şu anda 8.0.12'dir (2018/08/13) ve sorunu çözüyor! Teşekkürler!
Bruno Silvano

63

Aynı sorun vardı, ama Aman Aggarwal tarafından cevap benim mysql 8.X çalışan bir Docker konteyner ile işe yaramadı. Konteynerde loged oldum

docker exec -it CONTAINER_ID bash

sonra root olarak mysql'de oturum açın

mysql --user=root --password

Kök için parolayı girin (Varsayılan 'root'tur) Son olarak Çalıştır:

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

Hazırsınız.


Bu aradığım şey için iyi bir cevap olabilir gibi görünüyor. Ama "bu" nun ne olduğunu bilmiyorum. kabul edilen cevabı mı kastediyorsun? ya da başka bir tane ...
Zach Smith

1
Evet @ZachSmith, "bu" kabul edilen cevaplayıcıyı ifade eder.
axelferreira

Kabuğun docker exec -it CONTAINER_ID mysql --user=root --passwordvarlığına dayanan iki komut yerine ( bashgelecekte kesin olmayan) ne dersiniz ?
Eric

Bu, docker desktop 2.0.3.0 (mac) kullanan sequelpro 1.1.2 ile çalışmadı. tüm komutları çalışır, ancak girişte devam eden pro hataları - mysql kullanarak: latest (v8.0.15)
arcseldon

Diğerlerinin de belirttiği gibi, mysql 5.7 kullanmak hiçbir şey gerektirmeden çalışır:docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=secret -d mysql:5.7
arcseldon

47

Tamam, bu konuda çok zaman harcadım, bu yüzden burada 19 Mart 2019 itibariyle bir özet var

Özellikle MySql 8+ ile bir Docker görüntüsü kullanmaya ve ardından bu docker kapsayıcısında çalışan veritabanlarınıza erişmek için SequelPro'yu kullanmaya çalışıyorsanız , şansınız kalmaz .

Bkz. Sequelpro sayısı 2699

Kurulumu docker desktop 2.0.3.0 (mac - mojave) kullanarak sıralı 1.1.2 ve mysql: latest (v8.0.15) kullanarak denedim.

Diğerlerinin de belirttiği gibi, mysql 5.7 kullanmak hiçbir şey gerektirmeden çalışır:

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

Tabii ki, MySql 8+'yi docker üzerinde kullanmak mümkündür ve bu durumda (gerekirse), caching_sha2_passwordtip sorunları için burada sağlanan diğer cevaplar işe yarar . Ancak sequelpro, MySql 8+ ile NO GO

Son olarak, sequelpro'yu (2013-2014'te arkadan güvenilir bir arkadaş) terk ettim ve yerine kurdum DBeaver'ı kurdum . Her şey kutudan çıktı. Liman işçisi için şunları kullandım:

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

Mysql veritabanlarına hızlıca göz atabilirsiniz:

docker exec -it mysql1 bash

mysql -u root -p

show databases;

1
Bunu paylaştığınız için çok teşekkürler. Yanlışlıkla MySQL geliştirici konteyneri sildikten sonra aynı combo'yu deniyordum.
martn_st

1
Sequel Pro'nun artık aktif olarak gelişmediği için çok üzücü :( 2019 zaten 3 Nisan 2016 tarihli son haberler MySQL explorer için gördüğüm en iyi araçtır.
Oleksii Shnyra

@OleksiiShnyra birkaç yıldır bir üretim sürümü olmadığı doğru, ancak FYI, daha yeni "gece" sürümleri mevcut. sequelpro.com/test-builds ve yoluyla brew cask install homebrew/cask-versions/sequel-pro-nightly.
Peter W

Komut satırı ( mysqlistemci) ve ALTERmyslq.user tablosu aracılığıyla oturum açabilenler için SequelPro'yu çalıştırabilecek bir geçici çözüm var: github.com/sequelpro/sequelpro/issues/…
Peter W

MySQL 8 üzerindeyseniz ve eski sürüme geçmek istemiyorsanız mysql_native_passwordbunu takip edebilirsiniz: stackoverflow.com/a/56402217/2321594
Aidin

46

MySQL'i Windows 10 bilgisayarıma " MySQL Web Installer " kullanarak yükledim ve MySQL çalışma tezgahını kullanarak bağlanmaya çalışırken aynı sorunla karşı karşıya kaldım. Installer penceresinden sunucuyu yeniden yapılandırarak sorunu çözdüm.

MySQL Web Yükleyici - Ana Ekran

"Yeniden yapılandır" seçeneğini tıkladığınızda sunucunun yeniden yapılandırılmasına izin verir. "Kimlik Doğrulama Yöntemi" ne ulaşıncaya kadar "İleri" yi tıklayın.

MySQL Installer - Kimlik Doğrulama Yöntemi

Bu sekmeye girdikten sonra, "Eski Kimlik Doğrulama Yöntemini Kullan (MySQL 5.x Uyumluluğunu Koru)" seçeneğini kullanın.

Diğer her şeyi olduğu gibi tut ve sorunumu bu şekilde çözdüm.


1
El ile mysql-8.0.11-winx64.zip unzip ve kolayca "caching_sha2_password yüklenemiyor" sorunu çözemez. Ancak mysql-installer-community-8.0.11.0.msi kullanarak ve yukarıdaki öneriyi takip ederek, MySQL Workbench 8.0.11 MySQL sunucusuna 8.0.11 giriş yapabilir.
oraclesoon


21
  • MySQL Komut Satırı İstemcisini Aç

  • Yeni bir geçişle yeni bir kullanıcı oluşturun

Üstte bir bin klasörüne giden yol örneği göz önüne alındığında, komut satırında satır satır çalıştırmanız gereken kod aşağıda verilmiştir:

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';
  • Ardından, Workbench'e tekrar erişebilirsiniz (bunu yeni bir localhost bağlantısı oluşturduktan ve programı kullanmaya başlamak için yeni kimlik bilgilerini kullandıktan sonra yapabilmeniz gerekir).

Yukarıda belirtilen kullanıcı adıyla (yerel kullanıcı) yeni bir yerel ana bilgisayar bağlantısı kurun, şifreyi kullanarak giriş yapın (new_password)

görüntü

Nezaket: UDEMY SSS'ler Career365 Ekibi tarafından cevaplandı


Bu işe yaradı. Neden? Bu hatayla bağlanmaya çalışırken rootve komut satırında çalışan, ancak parola olmayan bir hata aldım Sequel Pro.
Volte

cazibe gibi çalışmak, Konu Başlangıç ​​soru ile tam korelasyon ve lütfen dikkat: Mac os Catalina olmalı, docker 19.03, mysql son görüntüler, bu komut exection $ docker run -p 3306: 3306 -d - adı mysql -e MYSQL_ROOT_PASSWORD = şifre dzone web sitesinden mysql / mysql-server.
banzai

13

Docker veya Docker Compose kullanan kişiler için MySQL görüntü sürümümü ayarlamadığım için bu hatayla karşılaştım. Docker otomatik olarak en son sürümü olan 8'i almaya çalışacaktır.

MySQL'i 5.7 olarak ayarladım ve görüntüyü yeniden oluşturdum ve normal şekilde çalıştı:

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

3
Sürüm 5 yerine sürüm 8'i kullanmak için geçerli nedenler var. Bu sayfadayım çünkü sürüm 5 yerine sürüm 8'i kullanmak istiyorum
Zach Smith

2
kullanarak mysql:5.7yerine mysql:latestbenim için çözülmüş konuyla
Francesco Borzi

13

Bu benim docker-compose benim veritabanı veri tanımı:

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"

İlgili satır giriş noktasıdır .

Oluşturduktan ve geliştirdikten sonra aşağıdakileri test edebilirsiniz:

$ 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

Windows 10 için ,

  1. İçindeki my.inidosyayı değiştirC:\ProgramData\MySQL\MySQL Server 8.0\

    [mysqld]
    default_authentication_plugin=mysql_native_password
  2. MySQL Hizmetini yeniden başlatın.

  3. Komut satırında MySQL'e giriş yapın ve MySQL'de aşağıdaki komutları yürütün:

    • Yeni bir kullanıcı oluşturun.

      CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
    • Tüm ayrıcalıkları verin.

      GRANT ALL PRIVILEGES ON * .* TO 'user'@'localhost';
  4. MySQL çalışma tezgahını açın ve yeni kullanıcı kimlik bilgilerini kullanarak yeni bir bağlantı açın.

Aynı sorunla karşı karşıyaydım ve bu işe yaradı.


9

Windows 10'da MySQL 8.0 Yüklemesinden sonra benim için çalışan çözüm.

MySQL kullanıcı adının rootve şifreninadmin

Komut istemini açın ve aşağıdaki komutları girin:

cd C: \ Program Dosyaları \ MySQL \ MySQL Server 8.0 \ bin

mysql_upgrade -uroot -padmin

mysql -uroot -padmin

ALTER USER 'root' @ 'localhost' mysql_native_password İLE TANIMLANDI 'admin'


8

Bu hatayı GitLab CI'de benim gibi alıyorsanız: Sadece en sondan 5.7 sürümüne geçin;)

# .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!)

7

onu buldum

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

kendi başına çalışmadı. Ayrıca,

[mysqld]
    default_authentication_plugin=mysql_native_password

PHP 7.0 çalıştıran Ubuntu 18.04 üzerinde /etc/mysql/mysql.conf.d/mysqld.cnf içinde


Bu benim için Centos 7'de çalıştı. Nedense, şifrelerim varsayılan olarak caching_sha2_password olarak kaydedildi ve phpMyAdmin ile giriş yapmaya çalışırken # 1251 hatası alıyordum.
DaFudgeWizzad



6

Bu hata, kullanılan araç MySQL8 ile uyumlu olmadığında ortaya çıkar, MySQL8 için MySQL Workbench'in en son sürümüne güncellemeyi deneyin


5

Neredeyse yukarıdaki cevaplar gibi ama basit sorgularda olabilir, MySQL yükseltmesinden sonra hazırda bekleme ile birlikte bahar önyükleme uygulamasında bu hatayı alıyordum. Aşağıdaki sorguları DB'mize göre çalıştırarak yeni bir kullanıcı oluşturduk. Bu son ve iyi kimlik doğrulaması caching_sha2_password yerine sha256_password kullanmak için geçici bir çalışma olduğuna inanıyorum.

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

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

4

MacOS için MySQLWorkbench 8.0.11 bunu ele alıyor. Docker'da çalışan root şifre korumalı mysql örneği ile bağlantı kurabilirim.


Bunu benim için düzeltti. 8.0 sunucusuyla daha eski bir MySQL Workbench 6.3 çalıştırıyordum. Burada birçok yanıt sunucu uyumluluğunu düşürdüğünü söylese de, Workbench sürümümü en son 8.0 sürümüne (şu anda 8.0.15) yükselttim.
Toplam Yok

3

Bu gerçek bir çözüm olmamasına rağmen , sıkışıp kalırsanız yerel olarak çalışır

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';

1
Bu sorunu çözer.
kta

2

Aşağıdaki çözüm benim için çalıştı resim açıklamasını buraya girin

Mysql Workbench -> Sunucu-> Kullanıcılar ve Ayrıcalıklar'a gidin 1. Hesap Ekle'ye tıklayın

Giriş sekmesi altında yeni ayrıntılar sağlayın ve Kimlik Doğrulama Türünü standart olarak seçtiğinizden ve ilgili yönetim rollerini ve Şema Ayrıcalıklarını seçtiğinizden emin olun.

resim açıklamasını buraya girin


2

Başka bir bilgisayardan metin tabanlı bir MySQL istemcisinden bir MySQL sunucusuna bağlanmaya çalışıyorsanız (Docker olsun veya olmasın)

Buradaki yanıtların çoğu bir masaüstü istemcisinden bağlanmayı veya daha eski bir kimlik doğrulama yöntemine geçmenizi ister. MySQL istemcisine (metin tabanlı) bağlıyorsanız, Docker kapsayıcısında Debian Buster ile çalışmasını sağladım.

Diyelim apt sistemi ve wget kurulumu var, aşağıdakileri yapın:

  1. sudo apt-get update
  2. sudo apt-get install lsb-release -y
  3. MySQL web sitesinden sizin için uygun kaynakları güncelleyen bir Debian paketi indirin .
  4. sudo dpkg -i mysql-apt-config_0.8.13-1_all.debve istediğiniz seçenekleri seçin. Benim durumumda sadece MySQL Tools & Connectorsetkinleştirilmem gerekiyor .
  5. sudo apt-get update
  6. sudo apt-get install mysql-client -y
  7. Bitti. Artık yeni MySQL istemcisini çalıştırabilir ve yeni kimlik doğrulama yöntemiyle bağlanabilirsiniz.

WSL sorunları için doğru cevap buydu, teşekkürler!
Andrew Landsverk

1

MySql'i indirip kurarken bana yardımcı olan eski şifreyi kullanmayı deneyin. Veya Mac OS için Santhosh Shivan tarafından yayınlanan yöntemi izleyin.


0

8.0.11-rc geliştirme sürümünü indirmek benim için Mac'te çalıştı. aşağıdaki docker komutlarıyla:

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

-3

MySQL 5.7 yükleyerek bu sorunu çözdüm:

Adım 1 - MySQL Deposunu Etkinleştir

Her şeyden önce, MySQL 5.7 topluluk sürümü yum deposunu sisteminizde etkinleştirmeniz gerekir. Yum deposu yapılandırması için rpm paketleri MySQL resmi web sitesinde bulunabilir. İşletim sistemi sürümünüze göre aşağıdaki komutu kullanın.

CentOS ve RHEL 7'de

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

CentOS ve RHEL 6'da

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

Fedora 27'de

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

Fedora 26'da

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

Fedora 25'te

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

Adım 2 - MySQL 5.7 Sunucusunu Yükleyin

Sisteminizde MySQL yum deposunu başarıyla etkinleştirdiğiniz için. Şimdi, işletim sistemi sürümünüze göre aşağıdaki komutları kullanarak MySQL 5.7 topluluk sunucusunu kurun.

CentOS ve RHEL 7/6'da

yum install mysql-community-server

Fedora'da 27/26/25

 dnf install mysql-community-server

Kaynak: https://tecadmin.net/install-mysql-5-7-centos-rhel/


-5

Önceki kurulumlara (MySQL Community Server 5.7 ve Workbench 6.1'e) geri dönmek ve yeni MySQL kimlik bilgilerini ayarlamak benim için çalıştı!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.