it-swarm.asia

لا يمكن تحميل المكون الإضافي للمصادقة "caching_sha2_password"

أقوم بتوصيل MySQL - 8.0 باستخدام MySQL Workbench واحصل على الخطأ التالي:

لا يمكن تحميل المكون الإضافي للمصادقة 'caching_sha2_password': dlopen (/usr/local/mysql/lib/plugin/caching_sha2_password.so ، 2): لم يتم العثور على صورة

لقد حاولت مع أداة العميل الأخرى كذلك.

أي حل لهذا؟

286
Aman Aggarwal

يمكنك تغيير تشفير كلمة مرور المستخدم عن طريق تغيير المستخدم بأمر Alter:

ALTER USER "اسم المستخدم" @ "ip_address" معرف بـ mysql_native_password BY "كلمة المرور" ؛

أو

يمكننا تجنب هذا الخطأ بجعله يعمل مع البرنامج المساعد القديم لكلمة المرور:

أولاً قم بتغيير المكون الإضافي للمصادقة في ملف my.cnf لملف Linux/my.ini في نظام التشغيل Windows :

[mysqld]

default_authentication_plugin = mysql_native_password

أعد تشغيل خادم mysql لإجراء التغييرات في التأثير وحاول الاتصال عبر MySQL مع أي عميل mysql.

إذا كنت لا تزال غير قادر على الاتصال والحصول على الخطأ أدناه:

Unable to load plugin 'caching_sha2_password'

وهذا يعني أن المستخدم يحتاج إلى البرنامج المساعد أعلاه. لذا حاول إنشاء مستخدم جديد باستخدام إنشاء مستخدم أو أمر منح بعد تغيير المكون الإضافي الافتراضي. ثم يحتاج المستخدم الجديد إلى المكون الإضافي الأصلي وستتمكن من توصيل MySQL.

شكر

76
Aman Aggarwal

ملاحظة: لنظام التشغيل Mac OS

  1. افتح MySQL من تفضيلات النظام> تهيئة قاعدة البيانات>
  2. اكتب كلمة المرور الجديدة.
  3. اختر "استخدام كلمة المرور القديمة"
  4. بدء الخادم مرة أخرى.
  5. الآن قم بتوصيل MySQL Workbench

Image description

196
Santhosh Sivan

يمكنك تغيير تشفير كلمة المرور مثل هذا.

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

حاليًا (في 2018/04/23) ، تحتاج إلى تنزيل إصدار تطوير}. (ga _ لا تعمل.

لم أتمكن من الاتصال بأحدث GA الإصدار (6.3.10).

لقد عملت مع mysql-workbench-community-8.0.11-rc-winx64.msi (من https://dev.mysql.com/downloads/workbench/ ، tab إصدارات التطوير ).

68
Montecarlo

لنظام التشغيل 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 التكوين كما يلي:

[mysqld]

default_authentication_plugin = mysql_native_password

أعد تشغيل خادم MySQL وافتح Workbench مرة أخرى.

67
Araz Ghazaryan

واجهت نفس المشكلة ، لكن إجابة أمان آغاروال لم تنجح بالنسبة لي مع حاوية Docker التي تشغل mysql 8.X. لقد سجلت في الحاوية

docker exec -it CONTAINER_ID bash

ثم قم بتسجيل الدخول إلى mysql كجذر

mysql --user=root --password

أدخل كلمة مرور الجذر (الافتراضي هو "الجذر") أخيرًا تشغيل:

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

أنت كل مجموعة.

41
axelferreira

كنت أقوم بتثبيت MySQL على جهاز الكمبيوتر الذي يعمل بنظام Windows 10 باستخدام " MySQL Web Installer " وكنت أواجه نفس المشكلة أثناء محاولة الاتصال باستخدام طاولة عمل MySQL. لقد أصلحت المشكلة عن طريق إعادة تكوين الخادم من نافذة برنامج التثبيت.

 MySQL Web Installer - Home Screen

بالضغط على خيار "إعادة التكوين" سيسمح بإعادة تكوين الخادم. انقر فوق "التالي" حتى تصل إلى "طريقة المصادقة".

 MySQL Installer - Authentication Method

مرة واحدة في علامة التبويب هذه ، استخدم الخيار الثاني "استخدام طريقة المصادقة القديمة (الاحتفاظ بتوافق MySQL 5.x)".

حافظ على كل شيء آخر كما هو وهذا هو كيف حل مشكلتي.

38
ImtiazeA

مثله؟

docker run -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d mysql --default-authentication-plugin=mysql_native_password
mysql -uroot --protocol tcp

جرب الأشخاص ذوي الإعاقة

https://github.com/GitHub30/docs/blob/change-default_authentication_plugin/mysql/stack.yml

أو يمكنك استخدام MySQL Workbench 8.0.11.

29
井上智文

-فتح عميل سطر الأوامر 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';

-ثم ، يمكنك الوصول إلى Workbench مرة أخرى (يجب أن تكون قادرًا على القيام بذلك بعد إنشاء اتصال مضيف محلي جديد واستخدام بيانات الاعتماد الجديدة لبدء استخدام البرنامج).

قم بإعداد اتصال مضيف محلي جديد باسم المستخدم المذكور أعلاه (مستخدم أصلي) ، وقم بتسجيل الدخول باستخدام كلمة المرور (new_password)

 Image

من باب المجاملة: UDEMY أسئلة وأجوبة أجاب عليها Career365 فريق

16
Ahmed Ziyad

حسنًا ، أهدر الكثير من الوقت في هذا الأمر ، فإليك ملخصًا اعتبارًا من 19 مارس 2019

إذا كنت تحاول استخدام صورة Docker على وجه التحديد مع MySql 8+ ، ثم تستخدم SequelPro للوصول إلى قاعدة بياناتك (قواعدك) التي تعمل على حاوية الإرساء ، فأنت خارج الحظ.

راجع إصدار sequelpro 2699

برنامج الإعداد الخاص بي هو sequelpro 1.1.2 باستخدام برنامج docker Desktop 2.0.3.0 (نظام التشغيل mac - mojave) ، وحاول استخدام mysql: الأحدث (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 تعمل. لكن sequelpro هو NO 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;
16
arcseldon

بالنسبة لأولئك الذين يستخدمون Docker أو Docker Compose ، واجهت هذا الخطأ لأنني لم أقم بتعيين إصدار صورة MySQL. سيحاول Docker الحصول تلقائيًا على أحدث إصدار وهو 8.

قمت بتعيين MySQL إلى 5.7 وأعدت بناء الصورة وعملت بشكل طبيعي:

version: '2'
services: 
  db:
   image: mysql:5.7
12
Dylan Pierce

هذا هو تعريف قاعدة البيانات الخاص بي في تأليف عامل ميناء:

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 |
+---+
11
Maximiliano de Mattos

لنظام التشغيل Windows 10 ،

  1. تعديل my.ini ملف في ** C:\ProgramData\MySQL\MySQL Server 8.0 **

[mysqld] default_authentication_plugin = mysql_native_password

  1. أعد تشغيل خدمة MySQL

  2. تسجيل الدخول إلى MySQL في سطر الأوامر ، قم بتنفيذ الأوامر التالية في MySQL

  3. إنشاء مستخدم جديد

إنشاء مستخدم "مستخدم" @ "مضيف محلي" تم تحديده بواسطة "كلمة المرور" ؛

  1. منح كل الامتيازات

منح جميع الامتيازات على *. * لـ "المستخدم" @ "المضيف المحلي" ؛

  1. افتح MySQL workbench ، افتح اتصالًا جديدًا باستخدام بيانات اعتماد المستخدم الجديدة

كنت أواجه نفس المشكلة وهذا يعمل.

10
Preetham

إليكم الحل الذي عمل لي بعد تثبيت 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

تم تغيير معرف المستخدم "الجذر" @ "المضيف المحلي" باستخدام mysql_native_password BY

7
Pratik Patil

إذا كنت تتلقى هذا الخطأ على 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!)
6
Bruno Casali

تقريبا مثل الإجابات أعلاه ولكن قد تكون في استعلامات بسيطة ، كنت أتلقى هذا الخطأ في تطبيق الإقلاع الربيعي مع الإسبات بعد ترقية 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';
5
Vikky

بالنسبة لي بدأ هذا لأنني كنت في مشروع ما ، استخدم Docker image mysql: الأحدث (الذي كان الإصدار 5 ، والذي كان يعمل بشكل جيد) ، وخلال إصدار أحدث ، تم تحويل الإصدار الأخير إلى الإصدار 8 ، و توقف عن العمل . I غيّرت صورتي إلى mysql: 5 وكنت لم أعد أتلقى هذا الخطأ .

5
alberto56

MySQL Workbench 8.0.11 for mac يعالج هذا. يمكنني إنشاء اتصال مع الجذر كلمة السر ماي الخلية محمية تعمل في عامل ميناء.

4
Benjamin Lin

افتح الأمر sql الخاص بي:

 step 1

ثم أدخل كلمة مرور الخلية

 step 2

أخيرًا استخدم:

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

راجع: https://stackoverflow.com/a/49228443/6097074

شكر.

3
ankit

يظهر هذا الخطأ عندما تكون الأداة المستخدمة غير متوافقة مع MySQL8 ، حاول التحديث إلى أحدث إصدار من MySQL Workbench لـ MySQL8

1
Shammoo

الحل أدناه عملت بالنسبة لي  enter image description here

انتقل إلى Mysql Workbench -> Server-> المستخدمون والامتيازات 1. انقر فوق إضافة حساب

2.تقدم علامة تبويب تسجيل الدخول أسفل تفاصيل جديدة وتأكد من اختيار نوع المصادقة كـ قياسي واختيار الأدوار الإدارية وامتيازات المخطط

 enter image description here

1
Deepak rkm

تنزيل إصدار تطوير 8.0.11-rc يعمل لي على نظام التشغيل mac. مع أوامر عامل ميناء التالية:

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