মারিয়াডিবির প্রশাসনের পাসওয়ার্ডটি কাজ করছে বলে মনে হচ্ছে না


8

আমি সবেমাত্র MariaDbএকটি তাজা উবুন্টু জিনোমে ইনস্টল করেছি এবং এর পরে mysql_secure_installation চালিয়েছি যেখানে আমি একটি শালীন প্রশাসকের পাসওয়ার্ড সেট করেছি, বেনামে ব্যবহারকারীর নাম অপসারণ করেছি ইত্যাদি।

এর পরে আমি অ্যাডমিনের পাসওয়ার্ড সম্পর্কিত কিছু অদ্ভুত আচরণ বুঝতে পেরেছিলাম:

  • যদি আমি আমার সাধারণ ব্যবহারকারীর অ্যাকাউন্ট থেকে কমান্ডটি ব্যবহার করে লগইন করার চেষ্টা করি তবে mysql -u root -pআমি সর্বদা একটি ত্রুটি ERROR 1698 (28000): Access denied for user 'root'@'localhost'
    পাই : আমি নিশ্চিত যে আমি এর আগে যে পাসওয়ার্ডটি মাইএসএকএল_সিকিউর_ইনস্টলেশন দিয়েছিলাম তা সঠিক পাসওয়ার্ড দিয়েছি ...
  • আমি যখন রুটটি ব্যবহার করে কমান্ডটি চালিত করি sudo mysql -u root -p, আমি সর্বদা ডাটাবেসে অ্যাক্সেস পাই, আমি আসলে কোন পাসওয়ার্ডটি প্রবেশ করিয়েছি না ...

এটি কি স্বাভাবিক আচরণ, আমি কি কিছু ভুল করছি বা আমি কোনওভাবে ইনস্টলেশনটি গুঁড়িয়ে দিয়েছি?

উত্তর:


16

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

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

$ sudo mysql -u root

mysql> use mysql;
mysql> update user set plugin='' where User='root';
mysql> flush privileges;

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

বিকল্পটি হ'ল রুট নয়, অন্য কোনও ব্যবহারকারী সেট আপ করা, এতেও প্রশাসকের সম্পূর্ণ অধিকার রয়েছে এবং প্রশাসকের উদ্দেশ্যে এটি রুটের পরিবর্তে ব্যবহার করুন:

$ sudo mysql -u root
mysql> CREATE USER 'finley'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'finley'@'localhost'
->     WITH GRANT OPTION;

0

HBruijn এর উত্তর ব্যবহারের জন্য নির্দিষ্ট করা হয়েছে

update user set plugin='' where User='root';

যাইহোক, এটি আমার জন্য লগইন সিস্টেমটিকে ভেঙে দিয়েছে, কারণ কেউ আর লগইন করতে সক্ষম হয় নি (সঠিক পাসওয়ার্ড ব্যবহার করছে কিনা এবং sudo কিনা

এটি কাজ করার জন্য আমার পরিবর্তে এটি ব্যবহার করা দরকার:

update user set plugin="mysql_native_password" where User='root';
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.