mysql - प्रमाणीकरण प्लगइन 'caching_sha2_password' लोड नहीं किया जा सकता है




database mysql-workbench (17)

-Open MySQL कमांड लाइन क्लाइंट

एक नए उपयोगकर्ता के साथ एक नया पास बनाएं

शीर्ष पर एक बिन फ़ोल्डर के लिए एक पथ के उदाहरण को ध्यान में रखते हुए, यहां कोड आपको कमांड प्रॉम्प्ट में चलाने की आवश्यकता है, निम्न द्वारा पंक्ति:

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';

-इसके बाद, आप फिर से वर्कबेन्च को एक्सेस कर सकते हैं (आपको एक नया लोकलहोस्ट कनेक्शन बनाने के बाद और प्रोग्राम को शुरू करने के लिए नए क्रेडेंशियल्स का उपयोग करने में सक्षम होना चाहिए)।

ऊपर बताए गए उपयोगकर्ता नाम (मूल उपयोगकर्ता) के साथ एक नया स्थानीय होस्ट कनेक्शन सेट करें, पासवर्ड (new_password) का उपयोग करके लॉगिन करें

सौजन्य: UDEMY FAQs ने Career365 टीम को जवाब दिया

मैं MySQL - 8.0 को MySQL कार्यक्षेत्र के साथ जोड़ रहा हूं और नीचे त्रुटि प्राप्त कर रहा हूं:

प्रमाणीकरण प्लगइन 'caching_sha2_password' लोड नहीं किया जा सकता: dlopen (/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2) - छवि नहीं मिली

मैंने अन्य क्लाइंट टूल के साथ भी कोशिश की है।

इसके लिए कोई उपाय?


8.0.11-rc के विकास रिलीज को डाउनलोड करना मेरे लिए एक मैक पर काम करता है। निम्नलिखित डॉकटर कमांड के साथ:

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

MacOS के लिए MySQLWorkbench 8.0.11 इसे संबोधित करता है। मैं डॉक में चल रहे रूट पासवर्ड संरक्षित mysql इंस्टेंस के साथ कनेक्शन स्थापित कर सकता हूं।


अगर आपको मेरी तरह 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!)

आप उपयोगकर्ता के पासवर्ड को एन्क्रिप्शन बदल सकते हैं, जिसमें उपयोगकर्ता को Alter कमांड के साथ बदल सकते हैं:

ALTER USER 'उपयोगकर्ता नाम' @ 'ip_address' IDsIFIED with mysql_native_password BY 'पासवर्ड';

या

हम पुराने पासवर्ड प्लगइन के साथ काम करके इस त्रुटि से बच सकते हैं:

पहले Windows में लिनक्स / my.ini फ़ाइल के लिए my.cnf फ़ाइल में प्रमाणीकरण प्लगइन बदलें:

[Mysqld]

default_authentication_plugin = mysql_native_password

प्रभाव में परिवर्तन लेने के लिए mysql सर्वर को पुनरारंभ करें और MySQL क्लाइंट के साथ MySQL के माध्यम से कनेक्ट करने का प्रयास करें।

यदि अभी भी नीचे की त्रुटि को जोड़ने और प्राप्त करने में असमर्थ हैं:

Unable to load plugin 'caching_sha2_password'

इसका मतलब है कि आपके उपयोगकर्ता को उपरोक्त प्लगइन की आवश्यकता है। इसलिए डिफॉल्ट प्लगइन बदलने के बाद क्रिएट यूजर या ग्रांट कमांड के साथ नया यूजर बनाने की कोशिश करें। तब नए उपयोगकर्ता को देशी प्लगइन की आवश्यकता होती है और आप MySQL को कनेक्ट करने में सक्षम होंगे।

धन्यवाद



ठीक है, इस पर बहुत समय बर्बाद किया है इसलिए यहां 19 मार्च 2019 तक एक सारांश है

यदि आप विशेष रूप से MySql 8+ के साथ डॉकर छवि का उपयोग करने का प्रयास कर रहे हैं, और फिर उस डॉक कंटेनर पर चल रहे अपने डेटाबेस (नों) को एक्सेस करने के लिए SequelPro का उपयोग करें, तो आप भाग्य से बाहर हैं।

अगली कड़ी 2699 देखें

मेरा सेटअप सीक्वेलप्रो 1.1.2 है जो डॉक डेस्कटॉप 2.0.3.0 (मैक - मोजेज) का उपयोग कर रहा है, और mysql का उपयोग करने की कोशिश की: नवीनतम (v8.0.15)।

जैसा कि अन्य लोगों ने बताया है कि mysql 5.7 का उपयोग करना आवश्यक नहीं है:

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

बेशक, caching_sha2_password पर MySql 8+ का उपयोग करना संभव है, और उस स्थिति में (यदि आवश्यक हो), caching_sha2_password प्रकार के मुद्दों के लिए यहां दिए गए अन्य उत्तर काम करते हैं। लेकिन अगली कड़ी MySql 8+ के साथ NO GO है

अंत में, मैंने सिक्वलप्रो (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;

नीचे दिए गए समाधान ने मेरे लिए काम किया

Myql कार्यक्षेत्र पर जाएं -> सर्वर-> उपयोगकर्ता और विशेषाधिकार 1. खाता जोड़ें पर क्लिक करें

2.उंडर लॉगिन टैब नए विवरण प्रदान करते हैं और मानक के रूप में प्रमाणीकरण प्रकार का चयन करने के लिए सुनिश्चित करें और संबंधित प्रशासनिक भूमिकाओं और स्कीमों का चयन करें


पिछली स्थापनाओं (MySQL सामुदायिक सर्वर 5.7 और कार्यक्षेत्र 6.1) पर वापस जाना और नए MySQL क्रेडेंशियल्स स्थापित करना मेरे लिए काम कर गया!


मुझे भी यही समस्या थी, लेकिन अमन अग्रवाल द्वारा दिया गया जवाब मेरे लिए डॉकटर कंटेनर के साथ काम नहीं कर रहा था, जो कि mysql 8.p पर चल रहा था। मैंने कंटेनर में प्रवेश किया

docker exec -it CONTAINER_ID bash

फिर रूट के रूप में mysql में प्रवेश करें

mysql --user=root --password

रूट के लिए पासवर्ड दर्ज करें (डिफ़ॉल्ट 'रूट' है) अंत में चलाएँ:

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

तम तैयार हो।


मेरे डॉकटर-कम्पोज़ में यह मेरी डेटाबेस परिभाषा है:

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: latest (जो कि संस्करण 5 था, और जो ठीक काम कर रहा था), और बाद के निर्माण के दौरान, नवीनतम संस्करण को संस्करण 8 में बदल दिया गया, और काम करना बंद कर दिया । मैंने अपनी छवि को mysql में बदल दिया: 5 और मुझे अब यह त्रुटि नहीं मिल रही थी।


मैंने MySQL 5.7 को स्थापित करके इस समस्या को हल किया:

चरण 1 - MySQL रिपोजिटरी सक्षम करें

सबसे पहले, आपको अपने सिस्टम पर MySQL 5.7 समुदाय रिलीज़ 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

फेडोरा 27 पर

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

फेडोरा 26 पर

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

फेडोरा 25 पर

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

चरण 2 - MySQL 5.7 सर्वर स्थापित करें

जैसा कि आपने अपने सिस्टम पर MySQL yum रिपॉजिटरी को सफलतापूर्वक सक्षम किया है। अब, अपने ऑपरेटिंग सिस्टम संस्करण के अनुसार निम्नलिखित कमांड का उपयोग करके MySQL 5.7 समुदाय सर्वर स्थापित करें।

सेंटोस और आरएचईएल 7/6 पर

yum install mysql-community-server

फेडोरा 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

उबंटू में 18.04.04 बजे से /etc/mysql/mysql.conf.d/mysqld.cnf


यहाँ समाधान है जो विंडोज 10 पर MySQL 8.0 स्थापना के बाद मेरे लिए काम किया है।

मान लीजिए कि MySQL उपयोगकर्ता नाम root और पासवर्ड admin

कमांड प्रॉम्प्ट खोलें और निम्न कमांड दर्ज करें:

सीडी सी: \ कार्यक्रम फ़ाइलें \ MySQL \ MySQL सर्वर 8.0 \ बिन

mysql_upgrad -uroot -padmin

mysql -uroot -padmin

ALTER USER की 'जड़' @ 'लोकलहोस्ट' IDsIFIED विद mysql_native_password BY 'एडमिन'


वर्तमान में (2018/04/23 पर), आपको एक विकास रिलीज़ डाउनलोड करने की आवश्यकता है। जीए वाले काम नहीं करते हैं।

मैं नवीनतम GA संस्करण (6.3.10) के साथ जुड़ने में सक्षम नहीं था।

इसने mysql-workbench-community-8.0.11-rc-winx64.msi ( https://dev.mysql.com/downloads/workbench/ , टैब डेवलपमेंट रिलीज़ से ) काम किया।


विंडोज 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 कॉन्फ़िगरेशन को निम्न के रूप में बदल सकते हैं:

[Mysqld]

default_authentication_plugin = mysql_native_password

MySQL सर्वर को पुनरारंभ करें और फिर से कार्यक्षेत्र खोलें।





mysql-8.0