কীভাবে সমাধান করবেন প্রমাণীকরণ প্লাগইন 'ক্যাচিং_শ্যা_পাসওয়ার্ড' সমস্যা লোড করতে অক্ষম


109

গ্রহণের সময় আমি যখন আমার অ্যাপ্লিকেশন শুরু করেছি তখন আমি এটি পেয়েছিলাম - ব্যবহারের উপভাষাটি আবিষ্কার করতে পারিনি। java.sql.SQLException: প্রমাণীকরণ প্লাগইন 'ক্যাচিং_শ্যা_পাসওয়ার্ড' লোড করতে অক্ষম।

java.sql.SQLException এ: প্রমাণীকরণ প্লাগইন 'ক্যাচিং_শ্যা_পাসওয়ার্ড' লোড করতে অক্ষম। com। java: 1746) at com.mysql.jdbc.MysqlIO.do হ্যান্ডশাকে (মাইসকিলি.ও.ভাভা 2222) এ com.mysql.jdbc.ConnicationImpl.coreConnect (কানেকশনআই.এম.পি.এল.ভা.ভা.ভা। com.mysql.jdbc.ConnectionImpl.createNewIO (সংযোগআই.এম.পি.এল.ভা.বা.2017) এ সংযুক্তি.আন.সি.এল.সি.বি.এজ.ভি.এই। .জেডিবিসি 4 সংযোগ।

উত্তর:


167

মাইএসকিউএল 8.0.4 থেকে শুরু করে তারা মাইএসকিউএল সার্ভার জন্য ডিফল্ট প্রমাণীকরণ প্লাগইন পরিবর্তিত হয়েছে mysql_native_password করার caching_sha2_password

সমস্যাটি সমাধান করতে আপনি নীচের কমান্ডটি চালাতে পারেন।

নমুনা ব্যবহারকারীর নাম / পাসওয়ার্ড => ছাত্র / পাস 123

ALTER USER 'student'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pass123';

বিশদের জন্য অফিসিয়াল পৃষ্ঠাটি দেখুন: মাইএসকিউএল রেফারেন্স ম্যানুয়াল


8
যদিও এটি কাজ করে, মাইএসকিউএল সংযোগকারী / জে সংস্করণটি (অন্যান্য উত্তরগুলির কয়েকটি হিসাবে প্রস্তাবিত) আপগ্রেড করা আরও ভাল কারণ এটি আপনাকে আরও সুরক্ষিত sha2_caching প্রমাণীকরণ প্লাগইন ব্যবহার করতে দেয়।
মার্ক রোটভিল

নিবন্ধন করুন আমিও তাতে একমত
গৌরব

@ মারকরোটিভেল কিভাবে?
theonlygusti

4
@ থিওনলিগাস্টি আপনাকে মাইএসকিউএল সংযোগকারী / জে কমপক্ষে 5.1.46 বা আরও উন্নততর 8.0.14 এ আপডেট করতে হবে।
মার্ক রোটভিল

এই টুইটটি আমার পছন্দ নয় stackoverflow.com/questions/54413365/...
theonlygusti

66

অন্যরা মূল সমস্যার দিকে ইঙ্গিত করেছে, তবে আমার ক্ষেত্রে আমি ডিবিভার ব্যবহার করছিলাম এবং প্রথমে ডিবিভারের সাথে মাইএসকিএল সংযোগ স্থাপনের সময় ভুল মাইএসকিএল ড্রাইভারটি বেছে নিচ্ছিলাম (উত্তরের জন্য ক্রেডিট: https://github.com/dbeaver/dbeaver/ ইস্যু / 4691 # জারিকরণ -442173584 )

নীচের চিত্রটিতে মাইএসকিউএল পছন্দটি নির্বাচন করা ড্রাইভারকে মাইএসকিএল 4+ হিসাবে উল্লিখিত ত্রুটিটি দেবে যা ডাটাবেসের তথ্য টিপটিতে দেখা যাবে।


এই ত্রুটির জন্য এই চিত্রটিতে শীর্ষস্থানীয় mysql 4+ পছন্দ নির্বাচন করা এই কুইজিটনে উল্লিখিত ত্রুটি দেয়


পরিবর্তে মাইএসকিউএল ড্রাইভার বাছাইয়ের পরিবর্তে নীচের চিত্রটিতে প্রদর্শিত মাইএসকিউএল 8+ ড্রাইভার নির্বাচন করুন।


এখানে চিত্র বর্ণনা লিখুন


6
ধন্যবাদ, এটা আমার সমস্যা ছিল। আপনি কি তখন অন্য ত্রুটি পেয়েছিলেন: "পাবলিক কী পুনরুদ্ধার অনুমোদিত নয়"?
টোমা জ্যাটো - মনিকা

আকর্ষণীয়, উপরের পরে কোনও নয়, ডিবিভার টেবিলগুলি লোড করেছে।
পল

4
ধন্যবাদ. এটি আমাকে অনেক সাহায্য করেছিল। যারা এখনও ডিবিভারে "পাবলিক কেট পুনরুদ্ধার অনুমোদিত নয়" ত্রুটি পেয়েছি তাদের জন্য আমি একটি লিঙ্ক পেয়েছি যা এটি এখানে সমাধান করে ।
jpisty

4
Public key retrieval is not allowed
অ্যাডারচক্স

43

নীচে আমি 8.0.13 সংস্করণ ব্যবহার করছি এবং পোমে আমি সংস্করণটি পরিবর্তন করেছি: নীচের মতো আপনার মাইএসকিএল সংস্করণ সহ আপনার মাইএসকিএল-সংযোজক "লিব প্যাকেজটি আপগ্রেড করুন"

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
    <version>8.0.13</version>
</dependency>

এর পরে আমার সমস্যার সমাধান হয়েছে।


4
সহায়ক উত্তরের জন্য ধন্যবাদ। অন্যদের জন্য, সর্বশেষতম সংস্করণটি সন্ধান করতে, দয়া করে এই লিঙ্কটি ব্যবহার করুন; mvnrepository.com/artifact/mysql/mysql-connector- java
ইউসুফ

31

হতে পারে আপনি ভুল মাইএসকিএল_ সংযোগকারী ব্যবহার করছেন।

একই মাইএসকিএল সংস্করণটির সংযোগকারী ব্যবহার করুন


16

আমি একটি স্প্রিং বুট অ্যাপ্লিকেশনটিতে এই ত্রুটিটি আঘাত করছিলাম তবে অন্যটিতে নয়। অবশেষে, আমি খুঁজে পেয়েছি যে একটি কাজ করছে না তার মধ্যে স্প্রিং বুট সংস্করণটি ছিল 2.0.0.RELEASE এবং যেটি কাজ করছিল সেটি ছিল ২.০.১.আরলেস। এটি মাইএসকিউএল সংযোগকারী - 5.1.45 বনাম 5.1.46 এর মধ্যে পার্থক্য সৃষ্টি করেছিল। আমি এই অ্যাপ্লিকেশনটির জন্য স্প্রিং বুট সংস্করণ আপডেট করেছি যা প্রারম্ভের সময় এই ত্রুটিটি ফেলেছিল এবং এখন এটি কার্যকর হয় works


এই আমাকে সাহায্য!
আনন্দ বার্কি ফিলিপস

আমার জন্য কাজ! আমি 1.5.8 সংস্করণ ব্যবহার করছিলাম RE
আয়নু সিউটা

15

আপনার কেবলমাত্র আপনার পুরানো সংযোজকটি মুছতে হবে এবং নতুন সংস্করণটি ডাউনলোড করতে হবে (মাইএসকিএল-সংযোজক-জাভা -5.1.46)


এটা কাজ করেছে. এই সমাধানটি খুঁজতে আমি প্রায় 2 দিন নষ্ট করেছি। ধন্যবাদ
হেমন্ত নাগপাল

11

আমি মাইএসকিএল 8.0.12 ব্যবহার করছি এবং মাইএসকিএল সংযোগকারীটি মাইএসকিএল-সংযোজক-জাভা -8.0.12 আপডেট করে আমার জন্য সমস্যাটি সমাধান করেছি।

আশা করি এটি কারও সাহায্য করবে।


কমপক্ষে 5.1.46 বা আজকের মতো সর্বশেষতম সংস্করণে আপগ্রেড করুন আমাদের কাছে 8.0.18 রয়েছে। এটি সমস্যার সমাধান করতে সহায়তা করবে।
অতুল

9

উপরের রেপিলিগুলিতে যেমন উল্লেখ করা হয়েছে:

মাইএসকিউএল ৮.০.৪ দিয়ে শুরু করে, মাইএসকিউএল টিম মাইএসকিউএল সার্ভারের জন্য ডিফল্ট প্রমাণীকরণ প্লাগইনকে মাইএসকিএল_নেটিভ_প্যাসওয়ার্ড থেকে ক্যাচিং_শ্যা_পাসওয়ার্ডে পরিবর্তন করেছে।

সুতরাং এই সমস্যাটি সমাধানের জন্য তিনটি উপায় রয়েছে:

 1. drop USER 'user_name'@'localhost';
    flush privileges;
    CREATE USER 'user_name'@'localhost' IDENTIFIED BY 'user_name';
    GRANT ALL PRIVILEGES ON * . * TO 'user_name'@'localhost';
    ALTER USER 'user_name'@'localhost' IDENTIFIED WITH mysql_native_password BY 
    'user_name';

 2. drop USER 'user_name'@'localhost';
    flush privileges;
    CREATE USER 'user_name'@'localhost' IDENTIFIED WITH mysql_native_password BY 'user_name';
GRANT ALL PRIVILEGES ON * . * TO 'user_name'@'localhost'

 3. If the user is already created, the use the following command:

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

8

এটি মাইএসকিউএলের জন্য আপনার সংযোগকারী হতে পারে যা আপডেট করার দরকার রয়েছে, কারণ মাইএসকিউএল 8 পাসওয়ার্ডগুলির এনক্রিপশন পরিবর্তন করেছে - তাই পুরানো সংযোগকারীগুলি সেগুলি ভুলভাবে এনক্রিপ্ট করছে।

জাভা সংযোজকের জন্য মাভেন রেপোটি এখানে পাওয়া যাবে
আপনি যদি ফ্লাইওয়ে প্লাগইন ব্যবহার করেন তবে আপনার এটি আপডেট করার বিষয়টিও বিবেচনা করা উচিত !

তারপরে আপনি কেবল নিজের মেভেন পোমকে সাথে আপডেট করতে পারেন :

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.17</version>
</dependency>

বা অন্যদের যারা ব্যবহার Gradle , আপনি আপডেট করতে পারেন build.gradle সঙ্গে

 buildscript {
    ext {
        ...
    }
    repositories {
        ...
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
        classpath('mysql:mysql-connector-java:8.0.11')
    }
 }

আপনার যা করা দরকার তা হ'ল (build.gradle উদাহরণ)


5

আপনার নতুন মাইএসকিউএল সংস্করণটি নিয়ে সমস্যা রয়েছে যা "ক্যাচিং_শাস_প্যাসওয়ার্ড" প্লাগইন নিয়ে এসেছে, এটি সমাধান করার জন্য নীচের কমান্ডটি অনুসরণ করুন।

DROP USER 'your_user_name'@'%';
CREATE USER 'your_user_name'@'%' IDENTIFIED WITH mysql_native_password BY 'your_user_password';
GRANT ALL PRIVILEGES ON your_db_name.* TO 'your_user_name'@'%' identified by 'your_user_password';

বা আপনার সুবিধাগুলি যেমন রয়েছে তেমন রাখতে আপনি নীচের কমান্ডটি ব্যবহার করতে পারেন:

ALTER USER your_user_name IDENTIFIED WITH mysql_native_password;

হ্যালো আপনাকে "আপনার_ডিবি_নাম। *" বলতে কী বোঝায় তৃতীয় লাইনে এটি * যা প্রতিনিধিত্ব করে
সারথ মোহন

ব্যবহারকারীরা অ্যাক্সেস পেতে অনুমান করে যেখানে ডিবি নাম। অথবা আপনি কেবলমাত্র সর্বশেষ পরিবর্তনের বিবৃতি ব্যবহার করতে পারেন যা আপনার সমস্যার সমাধান করবে। পরিবর্তে আপনাকে কেবল আপনার ব্যবহারকারীর নামটিই পাস করতে হবে

আপনার_ডিবি_নামে সমস্ত ব্যক্তিগতকৃত অনুদান দিন * * 'আপনার_উজার_পাসওয়ার্ড' দ্বারা 'আপনার_উজার_নেস' @ '%' চিহ্নিত;
সারথ মোহন

ঠিক আছে, আপনি ডিবির সাথে সংযোগের সময় সমস্যার মুখোমুখি হচ্ছেন? মানে আপনি কোনও সংযোগ স্ট্রিংয়ে কিছু ডিবি নাম উল্লেখ করছেন, আপনার_ডিবি_নামের জায়গায় একই ডিবি যুক্ত করা দরকার। আশা করি আপনি সাফ হয়ে

4

এই মুরচ জেএসপি বইটি থেকে রেডিমেড প্রকল্পের সাথে কাজ করার সময় নেটবিনে আমি এই সমস্যায় পড়েছিলাম । 5.1.23 সংযোগকারী জে একটি মাইএসকিউএল 8.0.13 ডাটাবেস ব্যবহার করে সমস্যাটি দেখা দিয়েছে। আমার পুরানো ড্রাইভারটি নতুন করে প্রতিস্থাপন করা দরকার। সংযোগকারী জে ডাউনলোড করার পরে, এটি তিনটি পদক্ষেপ নিয়েছে।

নেটবিয়ান প্রকল্পের সংযোগকারী জে কীভাবে প্রতিস্থাপন করবেন:

  1. বর্তমান সংযোগকারী জেটি এখান থেকে ডাউনলোড করুন । তারপরে এটি আপনার ওএসে অনুলিপি করুন।

  2. নেটবিনে, প্রোজেক্টস ট্যাবের পাশের ফাইল ট্যাবে ক্লিক করুন। Mysql- সংযোজক-জাভা-5.1.23.jar বা আপনার যে পুরানো সংযোগকারী রয়েছে তা সন্ধান করুন। এই পুরানো সংযোজকটি মুছুন। নতুন সংযোজকটিতে আটকান।

  3. প্রকল্প ট্যাবে ক্লিক করুন। লাইব্রেরি ফোল্ডারে নেভিগেট করুন। পুরানো মাইএসকিএল সংযোগকারী মুছুন। লাইব্রেরি ফোল্ডারে রাইট ক্লিক করুন। জার / ফোল্ডার যুক্ত নির্বাচন করুন। আপনি যেখানে নতুন সংযোজকটি রেখেছেন সেই জায়গায় যান এবং খোলা নির্বাচন করুন open

  4. প্রকল্প ট্যাবে, প্রকল্পে ডান ক্লিক করুন। পপআপ মেনুটির নীচে ডেটা উত্সগুলি সমাধান করুন নির্বাচন করুন। অ্যাড সংযোগ ক্লিক করুন। এই মুহুর্তে নেটবিয়ানস এগিয়ে যায় এবং ধরে নেয় আপনি পুরানো সংযোজকটি ব্যবহার করতে চান। এড়িয়ে যাওয়া উইন্ডোটিতে ফিরে যেতে পিছনে বোতামটি ক্লিক করুন। পুরানো সংযোজকটি সরান, এবং নতুন সংযোজক যুক্ত করুন। এটি কাজ করে তা নিশ্চিত করার জন্য Next এবং টেস্ট সংযোগটি ক্লিক করুন।

ভিডিও অবগতির জন্য, আমি দেখেছি এই দরকারী যাবে। IntelliJ ধারণা জন্য, আমি দেখেছি এই দরকারী যাবে।


আমি বুঝতে পারি আমার উত্তর সম্পূর্ণ প্রাসঙ্গিক নয়। আমি এখানে আমার নেটবিয়ানদের উত্তর পোস্ট করেছি কারণ আমার নিজের প্রশ্নটি এই প্রশ্নের সদৃশ হিসাবে চিহ্নিত হয়েছে।
জ্যাক জে

4

আমি নীচে নির্ভরতা ব্যবহার করে ঠিক একই সমস্যাটি করেছি:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.44</version>
</dependency>

আমি কেবল 46 সংস্করণে পরিবর্তন করেছি এবং সবকিছু কাজ করে।


3

আমি মনে করি আপনার "মাইএসকিএল-সংযোজক" লাইব প্যাকেজটি আপডেট করা আরও ভাল, সুতরাং ডাটাবেস এখনও আরও নিরাপদ থাকতে পারে।

আমি 8.0.12 সংস্করণটির মাইএসকিএল ব্যবহার করছি। আমি যখন মাইএসকিএল-সংযোজক-জাভা 8.0.11 সংস্করণে আপডেট করেছি, সমস্যাটি চলে গেছে।


2

আপনি যদি সংযোগকারীটিকে এমন কোনও সংস্করণে আপডেট করতে পারেন যা মাইএসকিউএল 8 এর নতুন প্রমাণীকরণ প্লাগইন সমর্থন করে, তবে এটি করুন। যদি এটি কোনও কারণে বিকল্প না হয় তবে আপনার ডাটাবেস ব্যবহারকারীর ডিফল্ট প্রমাণীকরণ পদ্ধতিটি স্থানীয় করে নিন।


0

আপনি যদি একাধিক সংস্করণ সংযোজক জার ফাইল যুক্ত করেন তবে সংযুক্ত .jar ফাইলটি সরিয়ে ফেলুন only


0

অন্য কারণ হ'ল আপনি ভুল বন্দরের দিকে ইঙ্গিত করছেন এমন ঘটনাও হতে পারে।

নিশ্চিত হয়ে নিন যে আপনি প্রকৃতপক্ষে সঠিক এসকিউএল সার্ভারটিতে ইঙ্গিত করছেন। আপনার মাইএসকিউএল-এর একটি ডিফল্ট ইনস্টলেশন 3306 চলমান থাকতে পারে তবে আপনাকে সম্ভবত অন্য কোনও মাইএসকিউএল উদাহরণের প্রয়োজন হতে পারে।

বন্দরগুলি পরীক্ষা করুন এবং ডিবি-র বিরুদ্ধে কিছু জিজ্ঞাসা চালান।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.