মাইএসকিউএল ব্যর্থ হয়েছে: মাইএসকিউএল "ERROR 1524 (HY000): প্লাগিন 'auth_sket' লোড হয় না"


126

আমার স্থানীয় পরিবেশটি হ'ল:

  • তাজা উবুন্টু 16.04
  • পিএইচপি 7 সহ
  • ইনস্টল করা মাইএসকিউএল 5.7 সহ

    sudo apt-get install mysql-common mysql-server

আমি যখন মাইএসকিউএল (সিএলআই এর মাধ্যমে) লগইন করার চেষ্টা করেছি:

mysql -u root -p

আমি একটি চক্রীয় ইস্যুটি 3 টি পদক্ষেপ নিয়ে এসেছি।

1) প্রথমটি ছিল কিছু সকেটের সমস্যা

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

সমাধান: পিসি পুনরায় চালু করা হচ্ছে।

যা অন্য একটি ত্রুটি বাড়ে:

2) অ্যাক্সেস অস্বীকার সঙ্গে

ERROR 1698 (28000): Access denied for user 'root'@'localhost'.

সম্ভাব্য সমস্যা? "রুট" ব্যবহারকারীর জন্য ভুল পাসওয়ার্ড!

সমাধান: এই টিউটোরিয়ালটি দিয়ে রুট পাসওয়ার্ড পুনরায় সেট করুন

সঠিক পাসওয়ার্ড এবং কাজের সকেট সহ, শেষ ত্রুটি আসে।

3) ভুল লেখক প্লাগইন

mysql "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded"

এখানে আমি থামলাম বা একরকম আবার 1 এ গিয়েছি)।


1
খুশী এটি আপনার পক্ষে ভাল কাজ করেছে :) পৌঁছানোর জন্য ধন্যবাদ!
টম ভোটারুবা

উত্তর:


371

আমি একটি সমাধান পেয়েছি!

পদক্ষেপ 2) এ রুট পাসওয়ার্ড পুনরায় সেট করার সময়, এই পৃষ্ঠার প্লাগইনকে এতেও পরিবর্তন করুন mysql_native_password:

use mysql;
update user set authentication_string=PASSWORD("") where User='root';
update user set plugin="mysql_native_password" where User='root';  # THIS LINE

flush privileges;
quit;

এটি আমাকে সফলভাবে লগ ইন করার অনুমতি দিয়েছে!


সম্পূর্ণ কোড সমাধান

1. bash কমান্ড চালান

1. প্রথমে এই ব্যাশ কমান্ডগুলি চালান

sudo /etc/init.d/mysql stop # stop mysql service
sudo mysqld_safe --skip-grant-tables & # start mysql without password
# enter -> go
mysql -uroot # connect to mysql

2. তারপরে mysql কমান্ডগুলি চালান => ম্যানুয়ালি ক্লিমে এটি অনুলিপি করুন

use mysql; # use mysql table
update user set authentication_string=PASSWORD("") where User='root'; # update password to nothing
update user set plugin="mysql_native_password" where User='root'; # set password resolving to default mechanism for root user

flush privileges;
quit;

আরও বাশ কমান্ড চালান

sudo /etc/init.d/mysql stop 
sudo /etc/init.d/mysql start # reset mysql
# try login to database, just press enter at password prompt because your password is now blank
mysql -u root -p 

4. সকেট ইস্যু (আপনার মন্তব্য থেকে)

আপনি যখন সকেটের ত্রুটি দেখেন , একটি সম্প্রদায় 2 সম্ভাব্য সমাধান নিয়ে আসে:

sudo mkdir -p /var/run/mysqld; sudo chown mysql /var/run/mysqld
sudo mysqld_safe --skip-grant-tables &

(@ সেরিনকে ধন্যবাদ)

অথবা

mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqld  

(@ পিটার দ্বুখ্রেচেনস্কিকে ধন্যবাদ জানাই)


অন্ধ পথ এবং সম্ভাব্য প্রান্ত ত্রুটি

লোকালহোস্টের পরিবর্তে 127.0.0.1 ব্যবহার করুন

mysql -uroot # "-hlocalhost" is default

"অনুপস্থিত ফাইল" বা স্লিট ত্রুটির দিকে পরিচালিত করতে পারে।

mysql -uroot -h127.0.0.1

আরও ভাল কাজ করে।

সকেটের ইস্যুটি এড়িয়ে যান

আমি mysqld.sockফাইল তৈরির , অ্যাক্সেসের অধিকারগুলি পরিবর্তন করতে বা এটি সিমিলিং করার অনেকগুলি উপায় খুঁজে পেয়েছি । এটি সর্বোপরি সমস্যা ছিল না।

my.cnfফাইলটি এড়িয়ে যান

বিষয়টিও ছিল না। আপনি যদি নিশ্চিত না হন তবে এটি আপনাকে সহায়তা করতে পারে


3
এই জন্য আপনাকে ধন্যবাদ. এটি কীভাবে মাইএসকিএল রুট পাসটি পুনরায় সেট করবেন তার একটি দুর্দান্ত উত্তর এটি যাতে আমরা ইতিমধ্যে সকেটের সমস্যার আগে চালানোর আগে এটি শিরোনামটি সামান্য সম্পাদনা করতে চাই।
ওয়াটওয়ার

1
আমি আনন্দিত এটি সাহায্য করেছে। আসল বার্তা রাখতে আপনি কীভাবে শিরোনাম সম্পাদনা করবেন? আমি বুঝতে পারি সমাধানটির পাসওয়ার্ড পুনরায় সেট করতে হবে তবে এটি শিরোনামে সমস্যাটি সমাধান করে না। এটি আরও বেশি পয়েন্টের জটিল ব্যর্থতা। মূল পাসওয়ার্ড পুনরায় সেট করার জন্য, আমি এখানে যাব: stackoverflow.com/a/6401963/1348344
টম ভোটারুবা

1
@ ম্যাটানস্টার সত্যই নয়, এটি খাঁটি ধাপে ধাপে ট্রায়াল-ব্যর্থ নির্মিত। আপনি কোন ওএস ব্যবহার করবেন?
টম ভোটারুবা

8
আপনার mysqld_safe কলটি ভুল। পরিবর্তে আপনাকে চালানো দরকার:sudo mkdir -p /var/run/mysqld; sudo chown mysql /var/run/mysqld; sudo mysqld_safe --skip-grant-tables &
Cerin

3
উত্তরে সকেট ইস্যুটির একটি সার্থক সমাধান যুক্ত করুন। mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqldএটির মতো এটি কারও সময় বাঁচাতে পারে
পিটার ডিভুখ্রেচেস্কি

41

এটি আমার জন্য কাজ করে নীচে চেষ্টা করে দেখতে পারেন।

সার্ভার শুরু করুন:

sudo service mysql start

এখন, সক ফোল্ডারে যান:

cd /var/run

মোজা ব্যাক আপ:

sudo cp -rp ./mysqld ./mysqld.bak

সার্ভার বন্ধ করুন:

sudo service mysql stop

মোজা পুনরুদ্ধার:

sudo mv ./mysqld.bak ./mysqld

Mysqld_safe শুরু করুন:

 sudo mysqld_safe --skip-grant-tables --skip-networking &

মাইএসকিএল শেল:

 mysql -u root

পাসওয়ার্ড পরিবর্তন করুন:

সুতরাং, প্রথমে ডাটাবেসটি বেছে নিন

mysql> use mysql;

এখন দুটি প্রশ্নের নীচে প্রবেশ করান:

mysql> update user set authentication_string=password('123456') where user='root';
mysql> update user set plugin="mysql_native_password" where User='root'; 

এখন, সব ঠিক হয়ে যাবে।

mysql> flush privileges;
mysql> quit;

চেক করার জন্য:

mysql -u root -p

সম্পন্ন!

N.B, After login please change the password again from phpmyadmin

এখন চেক করুন hostname/phpmyadmin

Username: root

Password: 123456

আরও তথ্যের জন্য দয়া করে উবুন্টুতে ভুলে যাওয়া পাসওয়ার্ড phpmyadmin কীভাবে পুনরায় সেট করবেন তা পরীক্ষা করে দেখুন


2
এটি কেবল আমার জন্য কাজ করে! ব্যাকআপ এবং পুনরুদ্ধার সকেটটি বেশ স্মার্ট
স্পর্শী উদয়

1
ত্রুটি 1045 (28000): "সম্পন্ন!" এর আগে ব্যবহারকারীর 'রুট' @ 'লোকালহোস্ট' (পাসওয়ার্ড ব্যবহার: হ্যাঁ) এর জন্য অ্যাক্সেস অস্বীকার করা হয়েছে! আপনার উত্তর লাইন যখন সঙ্গে 123456. লগইন করার চেষ্টা
trainoasis

আমি phpmyadmin (যেমন পাসওয়ার্ড পরিবর্তন, প্লাগইন পরিবর্তন) এর বর্ণিত পদক্ষেপগুলি সমাধান করেছি। কোনও কারণে 'সেট করুন প্রমাণীকরণ_ স্ট্রিং = পাসওয়ার্ড (...)' এটিকে কাজ করা বন্ধ করে দিয়েছে (ত্রুটি 1045 (28000): অ্যাক্সেস প্রত্যাখ্যান ...)।
ফিল করুন

12

mysqlডিফল্টরূপে কমান্ড ইউনিক্স সকেট ব্যবহার মাইএসকিউএল সাথে সংযোগ স্থাপনের জন্য।

আপনি যদি মারিয়াডিবি ব্যবহার করছেন তবে আপনাকে ইউনিক্স সকেট প্রমাণীকরণ প্লাগইনটি সার্ভারের পাশে লোড করতে হবে ।

আপনি এটির [mysqld]মতো কনফিগারেশন সম্পাদনা করে এটি করতে পারেন :

[mysqld]
plugin-load-add = auth_socket.so

বিতরণের উপর নির্ভর করে কনফিগারেশন ফাইলটি সাধারণত অবস্থিত /etc/mysql/বা থাকে/usr/local/etc/mysql/


1
এইটা. অন্যান্য সমস্ত উত্তর ত্রুটিটি সম্পর্কে কাজ করার উপায় ব্যাখ্যা করে। এটি কীভাবে এটি পুনরায় সমাধান করবেন তা ব্যাখ্যা করে।
Envite

আপনি যদি মারিয়াডবি 10.4.3 এ থাকেন এবং তার পরে, ইউনিক্স_সকেট অথ প্লাগইনটি ডিফল্টরূপে ইনস্টল করা উচিত তবে আপনি যদি ভুলভাবে এটি "ব্যবহারকারী" আপডেট করার সময় প্লাগইন = "ইউনিট_সকেট" এর পরিবর্তে প্লাগইন = "অউথ_সকেট" হিসাবে উল্লেখ করেন তবে আপনি এই কিছুটা বিভ্রান্তিমূলক বার্তা পাবেন। আমার উত্তরটি কীভাবে আমি এই গোলযোগ করেছি তা বিশদভাবে জানায়।
রোহান অ্যাডামস

9

আপনি এই কয়েকটি পদক্ষেপ চেষ্টা করতে পারেন:

বন্ধ করুন মাইকিউএল পরিষেবা 1 ম sudo /etc/init.d/mysql stop

পাসওয়ার্ড ছাড়াই রুট হিসাবে লগইন করুন sudo mysqld_safe --skip-grant-tables &

লগইন মাইএসকিএল টার্মিনালের পরে আপনার আরও কম্যান্ড এক্সিকিউট করতে হবে:

use mysql;

UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';

flush privileges;

sudo mysqladmin -u root -p -S /var/run/mysqld/mysqld.sock shutdown

আপনি আপনার মাইএসকিএল সার্ভারটি পুনঃসূচনা করার পরেও যদি আপনি এখনও ত্রুটির মুখোমুখি হন তবে আপনাকে অবশ্যই দেখতে হবে: মাইএসকিউএল পুনরায় সেট করুন 5.7 মূল পাসওয়ার্ড উবুন্টু 16.04


8

উবুন্টু 18.04 এবং mysql 5.7 এর জন্য

  • ধাপ 1: sudo mkdir /var/run/mysqld;

    ধাপ ২: sudo chown mysql /var/run/mysqld

    পদক্ষেপ 3: sudo mysqld_safe --skip-grant-tables& প্রস্থান (যদি এটি আটকে থাকে তবে ব্যবহারটি ছেড়ে দিন)

পাসওয়ার্ড ছাড়াই mysql এ লগইন করুন

  • পদক্ষেপ 4: sudo mysql --user=root mysql

    পদক্ষেপ 5: SELECT user,authentication_string,plugin,host FROM mysql.user;

    পদক্ষেপ 6: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'

এখন লগইন করুন

  • mysql -u root -p <root>

1
তবে কোন ধাপে আমি রুটের জন্য পাসটি সেট করতে পারি? কারণ আমি চেষ্টা করেছি $ mysql -u root -pকিন্তু অ্যাক্সেস এখনও অস্বীকার করা হয়েছে। Access denied for user 'root'@'localhost' (using password: YES)আমি 'ইয়েস' পাসওয়ার্ডটি ইনপুট করার চেষ্টা করেছি
অ্যালেক্সনিকনভ

4

এটি ব্যবহার করে দেখুন: sudo mysql_secure_installation

উবুন্টু 18.04 এ কাজ


1

একই ভুল করার পরে যদি কেউ এখানে অবতরণ করে তবে আমিও করেছি:

  1. plugin="mysql_native_password"অস্থায়ীভাবে স্যুইচ করা হয়েছে । আমার কাজ সম্পাদন।
  2. "অ্যাথ_সকেট" প্লাগইনে ফিরে যাওয়ার চেষ্টা করা হয়েছিল, তবে plugin="auth_socket"ফলস্বরূপ ভুল হিসাবে এটি উল্লেখ করেছেmysql "ERROR 1524 (HY000): Plugin 'auth_socket' is not loaded"
  3. এই ভুলটি সংশোধন করতে লগইন করার কোনও উপায়ের অভাবের কারণে, আমাকে mysql_safeযথাযথ প্লাগইনে স্যুইচ করার জন্য মাইএসকিএল বন্ধ করতে হবে এবং প্রমাণীকরণকে বাইপাস করতে বাধ্য করা হয়েছিলplugin="unix_socket"

আশা করি এটি কারওর যদি মূল পোস্টারের ত্রুটি বার্তাটি গ্রহণ করে তবে কিছুটা সময় সাশ্রয় হয়েছে, তবে আসল কারণটি প্লাগইন নামটি ফ্লাব করে দিচ্ছিল, আসলে "আথ_সকেট" প্লাগইনের অস্তিত্বই নেই, যা মারিয়াডিবি ডকুমেন্টেশন অনুসারে :

মারিয়াডিবি 10.4.3 এ এবং তার পরে, ইউনিক্স_সকেট প্রমাণীকরণ প্লাগইনটি ডিফল্টরূপে ইনস্টল করা হয় এবং এটি 'রুট' @ 'লোকালহোস্ট' ব্যবহারকারীর অ্যাকাউন্টটি ডিফল্টরূপে ব্যবহৃত হয়।


-7

আপনি নীচের আদেশগুলি দিয়ে চেষ্টা করতে পারেন:

hduser@master:~$ sudo /etc/init.d/mysql stop
[ ok ] Stopping mysql (via systemctl): mysql.service.
hduser@master:~$ sudo /etc/init.d/mysql start
[ ok ] Starting mysql (via systemctl): mysql.service.

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