মাইএসকিউএল ত্রুটি:: 'ব্যবহারকারীর জন্য' অ্যাক্সেস প্রত্যাখ্যান '@' লোকালহোস্ট '


262

/ ./mysqladmin -u root -p ' redacted '
পাসওয়ার্ড প্রবেশ করান:

mysqladmin: 'লোকালহোস্ট' এ সার্ভারের সাথে সংযোগ ব্যর্থ হয়েছে ত্রুটি:
'ব্যবহারকারীর' রুট '@' লোকালহোস্ট '(পাসওয়ার্ড ব্যবহার করে: YES)' এর জন্য অ্যাক্সেস অস্বীকার করা হয়েছে

আমি এটা কিভাবে ঠিক করবো?



1
@ ক্যারলাইট একই প্রশ্ন নয়, এই পোস্টটি মাইসক্ল্যাডমিনকে মাইএসকিএল-তে দুর্দান্ত সুবিধাগুলি অর্জন করার সমস্যা, অন্য পোস্টটি সকেট থেকে একটি সহজ সংযোগ নিয়ে সমস্যা।
ই তথ্য 128 2

উপস্থিত ~/.my.cnfফাইল থাকলে অপসারণ করার চেষ্টা করুন।
ই তথ্য 128

11
আমি জানি এটি পুরানো, তবে ভবিষ্যতের দর্শনার্থীদের জন্য এটি বলতে চাই। কমান্ড নিজেই আপনার মাইএসকিএল পাসওয়ার্ডটি প্রবেশ করবেন না, বিশেষত রুটের জন্য, বা এটি আপনার শেল ইতিহাসে সংরক্ষণ করা হবে। কেবল -pবিকল্পটি নিজেই রেখে দিন এবং মাইএসকিএল একটি পাসওয়ার্ডের জন্য অনুরোধ করবে।
স্কটি সি।

উত্তর:


356
  1. আপনার ডিস্ট্রোর উপর নির্ভর করে খুলুন এবং সম্পাদনা করুন /etc/my.cnfবা Edit/etc/mysql/my.cnf
  2. যোগ skip-grant-tablesঅধীনে[mysqld]
  3. মাইএসকিএল পুনরায় চালু করুন
  4. নীচের কমান্ডটি ব্যবহার করে আপনার এখন মাইএসকিএল-এ লগইন করতে সক্ষম হওয়া উচিত mysql -u root -p
  5. চালান mysql> flush privileges;
  6. দ্বারা নতুন পাসওয়ার্ড সেট করুন ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
  7. /Etc/my.cnf এ ফিরে যান এবং স্কিপ-মঞ্জুরি-সারণীগুলি সরিয়ে / মন্তব্য করুন
  8. মাইএসকিএল পুনরায় চালু করুন
  9. এখন আপনি নতুন পাসওয়ার্ড দিয়ে লগইন করতে সক্ষম হবেন mysql -u root -p

6
হ্যালো, আমারও একই সমস্যা ছিল। আমি উপরেরটি দিয়েছিলাম, এবং এটি সমস্যার সমাধান করেছে, তবে আমি যখনই সেন্টোসকে রিবুট করি তখনই আমাকে সমস্ত পদক্ষেপগুলি আবার করতে হবে (আমি বার্তাটি পেয়েছি: ব্যবহারকারীর জন্য 'অ্যাক্সেস অস্বীকার করা হয়েছে' @ 'লোকালহোস্ট' (পাসওয়ার্ড ব্যবহার করে নয়) - যখন কমান্ড MySQL (অথবা কোন SQL কমান্ড) চালাতে এবং আমি প্রতিটি রিবুট এ উপরের মতো সব আবার এবং আবার না।
Eitan

19
খুব খারাপ যে এটি মারিয়াডিবি-র সাথে কাজ করে না:You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'USER 'root'@'localhost' IDENTIFIED BY 'NewPassword'' at line 1
ফিলিপ লুডভিগ

11
আমি এটি set PASSWORD FOR 'root'@'localhost' = PASSWORD('root');MariaDB [(none)]> MariaDB [(none)]> set PASSWORD FOR 'root'@'localhost' = PASSWORD('root'); Query OK, 0 rows affected (0.00 sec)
ফিলিপ লডউইগকে

3
পদক্ষেপ 3 পুনরায় আরম্ভ করার জন্য মারিয়াডিবি: আমি নিম্নলিখিত রচনাগুলি পেয়েছি:sudo systemctl restart mariadb
থ্রোবাইওয়াকান

7
কেউ কেউ ফাইলটি /etc/mysql/my.cnf- এ খুঁজে পেতে পারেন
ডিএসিংহভী

588

আমি যে সকল সমাধান পেয়েছি সেগুলি প্রয়োজনীয়গুলির চেয়ে অনেক জটিল ছিল এবং কোনওটিই আমার পক্ষে কার্যকর হয়নি। এখানে আমার সমস্যার সমাধান করা সমাধান। মাইএসকিএলডি পুনরায় আরম্ভ করার বা বিশেষ সুবিধাগুলি দিয়ে এটি শুরু করার দরকার নেই।

sudo mysql

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

একটি একক ক্যোয়ারী সঙ্গে আমরা পরিবর্তন করা হয় auth_plugin করার mysql_native_password করুন এবং রুট পাসওয়ার্ড সেটিং রুট (কোয়েরি এ পরিবর্তন করতে দ্বিধা বোধ করবেন না)

এখন আপনার রুট দিয়ে লগইন করতে সক্ষম হওয়া উচিত। আরও তথ্য মাইএসকিএল ডকুমেন্টেশনে পাওয়া যাবে

(সিটিআরএল + ডি দিয়ে মাইকিউএল কনসোল বা প্রস্থান প্রস্থান লিখে প্রস্থান করুন )


41
আমি এটি করতে অক্ষম ... "আপনার এসকিউএল সিনট্যাক্সে আপনার একটি ত্রুটি রয়েছে; কাছাকাছি সঠিক সিনট্যাক্স ব্যবহারের জন্য আপনার মারিয়াডিবি সার্ভার সংস্করণের সাথে সম্পর্কিত ম্যানুয়ালটি পরীক্ষা করুন ..."।
টিসিবি

2
এই উত্তরটি কাজ করেছে, আমি দুর্ঘটনাক্রমে যুক্ত হয়েছি উত্তর উত্তর ভোট নয়, ক্ষমা করবেন!
তাহের

25
উবুন্টু 18.04
আলমিনো মেলো

2
@ টিসিবি 13 এবং অন্য যে কেউ এই সমস্যার মুখোমুখি হচ্ছে। "আমি এটি করতে অক্ষম ..." আপনার এসকিউএল সিন্টেক্সে আপনার একটি ত্রুটি রয়েছে; আপনার মারিয়াডিবি সার্ভার সংস্করণটির সাথে সম্পর্কিত ম্যানুয়ালটি পরীক্ষা করে দেখুন নিকটবর্তী ব্যবহারের জন্য সঠিক সিনট্যাক্সের জন্য ... "" পরিবর্তিত কমান্ড কার্যকর করার আগে ফ্ল্যাশ প্রাইভেলিজ ব্যবহার করুন
কোডার

3
আপনি আমার দিন সংরক্ষণ করুন :)
xger86x

50

এই সমস্যাটি সংশোধন করার জন্য আমি অনেক পদক্ষেপ চেষ্টা করেছি। এই সমস্যাটির সম্ভাব্য সমাধানের জন্য অনেকগুলি উত্স রয়েছে যা বাজে কথা থেকে ধারণাটি ছাঁটাই করা শক্ত। অবশেষে আমি এখানে একটি ভাল সমাধান খুঁজে পেয়েছি :

পদক্ষেপ 1: ডাটাবেস সংস্করণ সনাক্ত করুন

$ mysql --version

আপনি মাইএসকিউএল এর সাথে এরকম কিছু আউটপুট দেখতে পাবেন:

$ mysql  Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using  EditLine wrapper

বা মারিয়াডিবির জন্য এর মতো আউটপুট:

mysql  Ver 15.1 Distrib 5.5.52-MariaDB, for Linux (x86_64) using readline 5.1

আপনি পরে এটি ব্যবহার করবেন সে হিসাবে কোন ডাটাবেস এবং কোন সংস্করণ আপনি চালাচ্ছেন তা নোট করুন। এরপরে, আপনাকে ডাটাবেসটি থামাতে হবে যাতে আপনি এটি ম্যানুয়ালি অ্যাক্সেস করতে পারেন।

পদক্ষেপ 2: ডাটাবেস সার্ভার বন্ধ করা

রুট পাসওয়ার্ড পরিবর্তন করতে, আপনাকে আগেই ডাটাবেস সার্ভারটি বন্ধ করতে হবে।

আপনি মাইএসকিউএল এর সাথে এটি করতে পারেন:

$ sudo systemctl stop mysql

এবং মারিয়াডিবি এর সাথে:

$ sudo systemctl stop mariadb

পদক্ষেপ 3: অনুমতি চেক ছাড়াই ডাটাবেস সার্ভার পুনরায় চালু করা

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

এটি করার জন্য, আপনাকে ডাটাবেসগুলিকে অনুদানের টেবিলগুলি লোড করা থেকে বিরত করতে হবে, যা ব্যবহারকারীর সুবিধার তথ্য সংরক্ষণ করে। কারণ এটি কিছুটা সুরক্ষা ঝুঁকিপূর্ণ, অন্য ক্লায়েন্টদের সংযোগ স্থাপন থেকে বিরত রাখতে আপনার নেটওয়ার্কিংও এড়ানো উচিত।

অনুদানের টেবিলগুলি লোড না করে বা নেটওয়ার্কিং সক্ষম না করে ডাটাবেসটি শুরু করুন:

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

এই কমান্ডের শেষে থাকা এম্পারস্যান্ডটি এই প্রক্রিয়াটিকে পটভূমিতে চালিত করবে যাতে আপনি আপনার টার্মিনালটি ব্যবহার চালিয়ে যেতে পারেন।

এখন আপনি মূল ব্যবহারকারী হিসাবে ডাটাবেসের সাথে সংযোগ করতে পারেন, যা পাসওয়ার্ডের জন্য জিজ্ঞাসা করা উচিত নয়।

$ mysql -u root

এর পরিবর্তে আপনি তাত্ক্ষণিকভাবে একটি ডাটাবেস শেল প্রম্পট দেখতে পাবেন।

মাইএসকিউএল প্রম্পট

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

মারিয়াডিবি প্রম্পট

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

এখন আপনার রুট অ্যাক্সেস রয়েছে, আপনি রুট পাসওয়ার্ড পরিবর্তন করতে পারেন change

পদক্ষেপ 4: রুট পাসওয়ার্ড পরিবর্তন করা

mysql> FLUSH PRIVILEGES;

এখন আমরা আসলে মূল পাসওয়ার্ড পরিবর্তন করতে পারি।

জন্য মাইএসকিউএল 5.7.6 এবং নতুন সেইসাথে MariaDB 10.1.20 এবং নতুন নিম্নলিখিত কমান্ড প্রয়োগ করুন:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

জন্য মাইএসকিউএল 5.7.5 বা তার বেশি বয়সের সেইসাথে MariaDB 10.1.20 এবং বয়স্ক জন্য ব্যবহার করুন:

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');

new_passwordআপনার পছন্দের নতুন পাসওয়ার্ডের সাথে প্রতিস্থাপন নিশ্চিত করুন ।

নোট: যদি ALTER USERকমান্ড না কাজ করে, এটি সাধারণত একটি বড় সমস্যা ইঙ্গিত আছে। তবে এর UPDATE ... SETপরিবর্তে আপনি মূল পাসওয়ার্ডটি পুনরায় সেট করার চেষ্টা করতে পারেন ।

[গুরুত্বপূর্ণ] এটি নির্দিষ্ট রেখাটি যা আমার নির্দিষ্ট সমস্যাটিকে স্থির করেছে:

mysql> UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHERE User = 'root' AND Host = 'localhost';

এর পরে অনুদানের টেবিলগুলি পুনরায় লোড করতে ভুলবেন না।

উভয় ক্ষেত্রেই, আপনার নিশ্চিত হওয়া উচিত যে কমান্ডটি সফলভাবে সম্পাদিত হয়েছে।

Query OK, 0 rows affected (0.00 sec)

পাসওয়ার্ড পরিবর্তন করা হয়েছে, সুতরাং আপনি এখন ডাটাবেস সার্ভারের ম্যানুয়াল দৃষ্টান্তটি বন্ধ করতে এবং এটি আগের মতো পুনরায় চালু করতে পারেন।

পদক্ষেপ 5: সাধারণত ডাটাবেস সার্ভারটি পুনরায় চালু করুন

টিউটোরিয়ালটি ডেটাবেস পুনরায় আরম্ভ করার জন্য আরও কিছু পদক্ষেপে চলেছে, তবে আমি ব্যবহার করা একমাত্র টুকরাটি ছিল:

মাইএসকিউএল-এর জন্য, ব্যবহার করুন: $ sudo systemctl মাইএসকিএল

মারিয়াডিবির জন্য, ব্যবহার করুন:

$ sudo systemctl start mariadb

এখন আপনি নিশ্চিত করতে পারবেন যে চালিয়ে নতুন পাসওয়ার্ডটি সঠিকভাবে প্রয়োগ করা হয়েছে:

$ mysql -u root -p

কমান্ডটি এখন নতুন বরাদ্দকৃত পাসওয়ার্ডের জন্য অনুরোধ করা উচিত। এটি প্রবেশ করান, এবং আপনার প্রত্যাশা অনুযায়ী ডাটাবেস প্রম্পটে অ্যাক্সেস পাওয়া উচিত।

উপসংহার

আপনার এখন মাইএসকিউএল বা মারিয়াডিবি সার্ভারে প্রশাসনিক অ্যাক্সেস পুনরুদ্ধার করা আছে। আপনার চয়ন করা নতুন রুট পাসওয়ার্ডটি শক্তিশালী এবং সুরক্ষিত এবং এটি নিরাপদ স্থানে রাখুন তা নিশ্চিত করুন।


1
অল্টার ইউএস স্টেটমেন্টটি মারিয়াডিবি 10.2.0 তে প্রবর্তিত হয়েছিল।
বেনোইট ডেস্রোয়েজার্স

2
কি দারুন ! এই খুব লাইন mysql> UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHERE User = 'root' AND Host = 'localhost';আমার জন্য একটি জীবন রক্ষাকারী হয়েছে!
lucyjosef

35

উপরের উত্তরগুলির মধ্যে কোনওটিই আমাকে এই সমস্যায় সহায়তা করেনি, সুতরাং আমি যে সমাধানটি পেয়েছি তা এখানে

প্রাসঙ্গিক অংশ:

মাইএসকিউএল ৫.7 (এবং পরবর্তী সংস্করণগুলি) চালিত উবুন্টু সিস্টেমে মূল মাইএসকিউএল ব্যবহারকারী একটি পাসওয়ার্ডের পরিবর্তে ডিফল্টরূপে auth_sket প্লাগইন ব্যবহার করে অনুমোদনের জন্য সেট করা হয়। এটি অনেক ক্ষেত্রে কিছুটা বৃহত্তর সুরক্ষা এবং ব্যবহারযোগ্যতার জন্য অনুমতি দেয় তবে আপনাকে যখন কোনও বাহ্যিক প্রোগ্রামের (যেমন, পিএইচপিএমআইএডমিন) ব্যবহারকারীর অ্যাক্সেসের অনুমতি দেওয়ার দরকার হয় তখন এটি জিনিসগুলিকে জটিল করে তুলতে পারে।

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

sudo mysql

এরপরে, আপনার প্রতিটি মাইএসকিউএল ব্যবহারকারী অ্যাকাউন্টগুলি নিম্নলিখিত কমান্ডের সাথে কোন প্রমাণীকরণ পদ্ধতি ব্যবহার করে তা পরীক্ষা করুন:

SELECT user,authentication_string,plugin,host FROM mysql.user;

আউটপুট

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

এই উদাহরণস্বরূপ, আপনি দেখতে পাচ্ছেন যে root ব্যবহারকারী সত্যই auth_sket প্লাগইন ব্যবহার করে প্রমাণীকরণ করে। পাসওয়ার্ড দিয়ে প্রমাণীকরণের জন্য রুট অ্যাকাউন্টটি কনফিগার করতে, নিম্নলিখিত ALTER USER কমান্ডটি চালান। আপনার পছন্দের শক্ত পাসওয়ার্ডে পাসওয়ার্ড পরিবর্তন করতে ভুলবেন না এবং নোট করুন যে এই আদেশটি আপনার দ্বিতীয় ধাপে সেট করা মূল পাসওয়ার্ডটি পরিবর্তন করবে:

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

তারপরে, ফ্লুশ প্রাইভেলিজ চালান যা সার্ভারকে অনুদানের টেবিলগুলি পুনরায় লোড করতে এবং আপনার নতুন পরিবর্তনগুলি কার্যকর করার জন্য বলে:

FLUSH PRIVILEGES;

আপনার প্রতিটি ব্যবহারকারীর দ্বারা নিযুক্ত প্রমাণীকরণের পদ্ধতিগুলি আবার পরীক্ষা করুন যা নিশ্চিত করতে যে রুটটি এখন আরথ_সকেট প্লাগইন ব্যবহার করে প্রমাণীকরণ করে না:

SELECT user,authentication_string,plugin,host FROM mysql.user;

আউটপুট

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

আপনি এই উদাহরণ আউটপুটে দেখতে পাচ্ছেন যে মূল মাইএসকিউএল ব্যবহারকারী এখন পাসওয়ার্ড ব্যবহার করে প্রমাণীকরণ করে। আপনি নিজের সার্ভারে এটি নিশ্চিত হয়ে গেলে আপনি মাইএসকিউএল শেলটি থেকে বেরিয়ে আসতে পারেন:

exit


27

উবুন্টু / ডেবিয়ান ব্যবহারকারীদের জন্য

( অন্যান্য ডিস্ট্রো বিশেষত ডেবিয়ান ভিত্তিক উপর কাজ করতে পারে)

root(কোনও পাসওয়ার্ড ছাড়াই) সংযোগ করতে নিম্নলিখিতটি চালান

sudo /usr/bin/mysql --defaults-file=/etc/mysql/debian.cnf

আপনি --defaults-fileযতবার সংযোগ করতে চান প্রতিটি সময় যোগ করতে না চাইলে আপনি নিজের হোম ডিরেক্টরিতে rootঅনুলিপি করতে পারেন /etc/mysql/debian.cnf:

sudo cp /etc/mysql/debian.cnf ~/.my.cnf

এবং তারপর:

sudo mysql

2
এই সব এটি নেওয়া হয়েছিল। স্পষ্টতই উবুন্টুতে 'রুট' 'রুট' নয়।
চেইম এলিয়াহ

21

অন্য সকলের উত্তর দেওয়ার চেষ্টা করার পরে, এটিই আমার পক্ষে কাজ করেছিল

sudo mysql -- It does not ask me for any password

-- Then in MariaDB/MySQL console:
update mysql.user set plugin = 'mysql_native_password' where User='root';
FLUSH PRIVILEGES;
exit;

আমি এই পোস্টে উত্তরটি পেয়েছি: https://medium.com/@chiragpatel_52497/solve-error-access-denied-for-user-root-localhost-of-mysql-programming-school-6e3611838d06


1
এই প্লাগইন লাইনটি আসলেই সহায়ক। আমি প্রচুর সংমিশ্রণের চেষ্টা করেছি তবে লিনাক্সের জন্য এটি কেবলমাত্র 14.14 ডিস্ট্রিবিউ 5.7.27 এর জন্য কাজ করেছে (x86_64)
আলেক্সনিকনভ

2
এটি আমার পাশাপাশি এসএসকিএল ৫. 5. সহায়তা করেছিল। তাই প্রযোজ্য জন্য mariadb না শুধুমাত্র
podarok

আমি এটি স্রেফ মাইএসকিউএল 8 উবুন্টু 20.04 এ ব্যবহার করেছি এবং এটি কার্যকর হয়েছে। skip-grant-table(My.conf বা mysqlকমান্ড) ব্যবহার করে অন্য উত্তরগুলি কাজ করে না। আমি কোনও পরিষেবা অ্যাকাউন্ট ব্যবহার করতে পারি ( Askubuntu.com/a/120769/169836 ) তবে UPDATE mysql.user SET Password=PASSWORD('') WHERE User='root';কাজ হয়নি। প্লাগইন অংশ ব্যবহার করার সময় কেবল জিনিসগুলি কাজ করে। ধন্যবাদ ~
hamx0r

16

নতুন লিনাক্স ব্যবহারকারীদের জন্য এটি একটি কঠিন কাজ হতে পারে। এটি আমার মাইএসকিএল 8 দিয়ে আপডেট করুন (12-সেপ্টেম্বর -2018 অনুসারে এখনই উপলব্ধ সর্বশেষতম সংস্করণটি 8.0.12)

  1. "/Etc/mysql/mysql.conf.d/" এ "mysqld.cnf" কনফিগারেশন ফাইলটি খুলুন।
  2. যোগ লাফালাফি-অনুদান-টেবিল [মাইএসকিউএল] পাঠ্যের পরবর্তী লাইন এবং সংরক্ষণ করুন।
  3. "Sudo পরিষেবা mysql পুনঃসূচনা" হিসাবে mysql পরিষেবাটি পুনরায় আরম্ভ করুন। এখন আপনার মাইএসকিএল কোনও প্রমাণীকরণ মুক্ত।
  4. মাইএসকিএল ক্লায়েন্টকে (মাইএসকিএল-শেল নামেও পরিচিত) মাইএসকিএল- ইউ রুট -পি হিসাবে সংযুক্ত করুন । এখন পর্যন্ত কী-ইন করার কোনও পাসওয়ার্ড নেই।
  5. স্কয়ার কমান্ড ফ্লাশ সুবিধাগুলি চালান ;
  6. 'মাইনিউপ্যাসওয়ার্ড' এর মাধ্যমে ALTER ব্যবহারকারী 'রুট' @ 'লোকালহোস্ট' পরিচয় হিসাবে পাসওয়ার্ডটি এখনই রিসেট করুন ;
  7. এখন ফিরে আসি স্বাভাবিক অবস্থায়; "mysqld.cnf" থেকে সেই লাইনটি "স্কিপ-গ্রান্ট-টেবিলগুলি" সরান এবং পরিষেবাটি পুনঃসূচনা করুন।

এটাই.


5

আপনার মাইএসকিউএল ওয়ার্কবেঞ্চে, আপনি বাম পাশের বারে যেতে পারেন, ম্যানেজমেন্টের অধীনে "ব্যবহারকারী এবং অধিকার" নির্বাচন করুন, ব্যবহারকারীর অ্যাকাউন্টের অধীনে রুট ক্লিক করুন, ডান বিভাগের ডাবল অংশে ট্যাব "অ্যাকাউন্ট সীমা" সর্বাধিক ক্যোয়ারী, আপডেট ইত্যাদি বাড়ানোর জন্য ক্লিক করুন এবং তারপরে "প্রশাসনিক ভূমিকা" ট্যাবে ক্লিক করুন এবং অ্যাকাউন্টটি অ্যাক্সেস দেওয়ার জন্য বাক্সগুলিতে চেক করুন। আশা করি এইটি কাজ করবে!


4

আমি ওএসএক্সে মাইএসকিউএল এর প্রাথমিক সেটআপে আমার রুট পাসওয়ার্ড সেট করতে এটি করেছি। একটি টার্মিনাল খুলুন।

sudo sh -c 'echo /usr/local/mysql/bin > /etc/paths.d/mysql'

টার্মিনালটি বন্ধ করুন এবং একটি নতুন টার্মিনাল খুলুন। এবং লিনাক্সে অনুসরণ করা রুট পাসওয়ার্ড সেট করতে কাজ করে।

sudo /usr/local/mysql/support-files/mysql.server stop
sudo mysqld_safe --skip-grant-tables

(sudo mysqld_safe --skip-अनुदान-টেবিল: এটি প্রথমবারের জন্য আমার পক্ষে কার্যকর হয়নি। তবে দ্বিতীয়বার চেষ্টা করুন, সফলতাটি হয়েছিল)

তারপরে মাইএসকিউএল এ লগইন করুন

mysql -u root

FLUSH PRIVILEGES;

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

ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';

মাইএসকিউএল পুনরায় চালু করুন:

sudo /usr/local/mysql/support-files/mysql.server stop
sudo /usr/local/mysql/support-files/mysql.server start

3

আমার ক্ষেত্রে ডেবিয়ান 10 এর অধীনে ত্রুটি

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

(ভাল উপায়) দ্বারা সমাধান করা হয়েছিল

sudo mysql -u root -p mysql

খারাপ পন্থা:

mysql -u root -p mysql

3

উঘ- কিছুই আমার পক্ষে কাজ করেনি! আমার কাছে সেন্টস 7.4 মেশিন মারিয়্যাডবি 5.5.64 চলছে।

আমাকে যা করতে হয়েছিল তা হ'ল ইউ থেকে মারিয়্যাডবি স্থাপনের ঠিক পরে;

# systemctl restart mariadb
# mysql_secure_installation

এটি mysql_secure_installationআপনাকে "রুট পাসওয়ার্ড সেট করবেন? [Y / n]" সহ একাধিক পদক্ষেপ নেবে। কেবল "y" বলুন এবং এটি একটি পাসওয়ার্ড দিন। আপনার ইচ্ছামত অন্যান্য প্রশ্নের উত্তর দিন।

তারপরে আপনি ব্যবহার করে আপনার পাসওয়ার্ড দিয়ে প্রবেশ করতে পারেন

# mysql -u root -p

এটা বেঁচে থাকবে

# systemctl restart mariadb

চাবি

তারপরে, আমি /bin/mysql_secure_installationকীভাবে এটি রুট পাসওয়ার্ড পরিবর্তন করতে যাদুকরীভাবে সক্ষম এবং এটির উত্তরগুলি উত্তর দিতে পারে নি তা খুঁজে পাওয়ার জন্য উত্স কোডটি যাচাই করেছিলাম । আমদানি বিটটি হ'ল:

do_query "UPDATE mysql.user SET Password=PASSWORD('$esc_pass') WHERE User='root';"

... এটা বলে SET Password=...এবং না SET authentication_string = PASSWORD...। সুতরাং, এই সংস্করণটির (5.5.64) সঠিক পদ্ধতিটি হ'ল:

login using mysql -u root -p , using the password you already set.
Or, stop the database and start it with:
mysql_safe --skip-grant-tables --skip-networking &

মাইএসকিএল> প্রম্পট থেকে:

use mysql;
select host,user,password from user where user = 'root';
(observe your existing passwords for root).
UPDATE mysql.user set Password = PASSWORD('your_new_cleartext_password') where user = 'root' AND host = 'localhost';
select host,user,password from user where user = 'root';
flush privileges;
quit;

চলমান mysqld_safe মেরে ফেলুন। মারিয়াডব পুনরায় আরম্ভ করুন। রুট হিসাবে লগইন করুন: mysql -u -p। আপনার নতুন পাসওয়ার্ড ব্যবহার করুন।

আপনি যদি চান তবে আপনি একবারে সমস্ত মূল পাসওয়ার্ড সেট করতে পারেন। আমি মনে করি এটি জ্ঞানী:

mysql -u root -p
(login)
use mysql;
select host,user,password from user where user = 'root';
UPDATE mysql.user set Password = PASSWORD('your_new_cleartext_password') where user = 'root';
select host,user,password from user where user = 'root';
flush privileges;
quit;

এটি সমস্ত মূল পাসওয়ার্ডগুলিতে আপডেট সম্পাদন করবে: যেমন "লোকালহোস্ট", "127.0.0.1" এবং ":: 1" এর জন্য

ভবিষ্যতে, আমি যখন আরএইচইএল 8 এ যাই বা আপনার কী আছে, আমি / বিন / মাইএসকিএল_সিকিউর_ইনস্টলেশনটি পরীক্ষা করে দেখার চেষ্টা করব এবং ছেলেরা কীভাবে এটি করেছে, এই ওএসের জন্য মারিয়্যাডবি কনফিগার করে কে ছিল।


2

আপনি যদি আমার মত হয়ে থাকেন এবং উপরের সমস্ত পরামর্শ ব্যর্থ হয়ে গেছে, আপনার মেশিনে সমস্ত সংস্করণ মাইএসকিএল আনইনস্টল করুন, এই কমান্ডটি ব্যবহার করে অবশিষ্ট সমস্ত মাইএসকিএল ফাইল অনুসন্ধান করুন sudo find / -name "mysql"এবং এর rm -rfসাথে যুক্ত মাইএসকিএল নামের প্রতিটি ফাইল বা ডিরেক্টরি অনুসন্ধান করুন (আপনার সাথে সম্পর্কিত ফাইলগুলি এড়ানো উচিত নয়) প্রোগ্রামিং ভাষার পাঠাগারগুলিতে)। এখন মাইএসকিউএল এর একটি নতুন সংস্করণ ইনস্টল করুন এবং উপভোগ করুন। এনবি: আপনি আপনার সমস্ত ডেটা আলগা করবেন তাই প্রথমে আপনার বিকল্পগুলি ওজন করুন।


1

আপনার পর্যাপ্ত সুযোগ সুবিধা না থাকলে এটি ঘটতে পারে। টাইপ করুন su, রুট পাসওয়ার্ড লিখুন এবং আবার চেষ্টা করুন।


1

ঠিক আছে, আমি জানি এটি একটি পুরানো থ্রেড তবে আপনি যদি গুগলের মাধ্যমে এই পৃষ্ঠায় পৌঁছে যান যেমন আমি করেছি এবং উপরের সমাধানগুলির কোনওটিই কাজ করে না, তবে ত্রুটিটি আমার পরিণতিতে 100% মূর্খতা বলে প্রমাণিত হয়েছিল। আমি সার্ভারের সাথে সংযুক্ত হই নি। একবার সংযুক্ত সবকিছু ছিল মসৃণ নৌযান।

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

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


0

সমাধান: ছেড়ে দিন!

আমার কথা শোন, আমি মাইএসকিউএল এর কাজটি কোনও উপকারে নেওয়ার চেষ্টা করে পুরো দুটি দিন কাটিয়েছি, সবসময় অনুমতি ত্রুটিতে আটকে থাকি, যার কোনওটিই এই থ্রেডের উত্তর দ্বারা স্থির করা হয়নি। এটি এমন জায়গায় পৌঁছেছে যে আমি ভেবেছিলাম যদি আমি চালিয়ে যাই তবে আমি উন্মাদ হয়ে যাব।

এটি কাজ করার জন্য ধৈর্য্যের বাইরে, আমি এসকিউএলাইট ইনস্টল করার জন্য কমান্ডটি পাঠিয়েছিলাম, কেবল 450KB ব্যবহার করে এবং এটি গো শব্দটি থেকে পুরোপুরি কাজ করেছিল।

আপনার যদি কোনও সাধকের ধৈর্য না থাকে তবে এসকিউএলাইটের সাথে যান এবং নিজেকে অনেক সময়, প্রচেষ্টা, ব্যথা এবং সঞ্চয় স্থান সংরক্ষণ করুন ..!

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