উবুন্টুতে নতুন ইনস্টলেশন হওয়ার পরে ব্যবহারকারীর 'রুট' @ 'লোকালহোস্ট' (পাসওয়ার্ড: YES) এর জন্য অ্যাক্সেস অস্বীকার করা হয়েছে


124

আজ আমি উবুন্টু 14.04.1 এলটিএস এলএলটিতে রুট হিসাবে লগইন করেছি

এবং তারপরে apt-get install mariadb-server(sudo ছাড়া কিন্তু রুট হিসাবে)

সঙ্গে mySQL -h localhost -u root --password=<PW>আমি পেয়েছিলাম

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

সাথে mySQL -u root -pআমি ডিবিতে লগইন করেছিলাম

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '<PW>';
FLUSH ALL PRIVILEGES;

তবে এতে কোনও লাভ হয়নি। আপনার কি ধারণা আছে? অনুরূপ প্রশ্নের উত্তর আমি পাইনি।


আপনি কি রুটের জন্য পাসওয়ার্ডটি পুনরায় সেট করার চেষ্টা করেছেন?
ওজগুর বার

উত্তর:


277

টিএল; ডিআর: রুট ব্যবহারকারী হিসাবে মাইএসকিএল / মারিয়্যাডবি এর নতুন সংস্করণগুলি অ্যাক্সেস করতে নতুন ইনস্টল করার পরে, আপনাকে একটি রুট শেলের মধ্যে থাকা প্রয়োজন (যেমন sudo mysql -u root, বা mysql -u rootশেলের ভিতরে su -বা sudo -iপ্রথম দ্বারা শুরু করা )


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

কি অদ্ভুত ছিল তা ছিল

sudo /usr/bin/mysql_secure_installation

আমার পাসওয়ার্ড গ্রহণ করবে, এবং আমাকে এটি সেট করার অনুমতি দেবে, কিন্তু আমি ক্লায়েন্টের rootমাধ্যমে লগ ইন করতে পারিনিmysql

আমাকে মারিয়াডব শুরু করতে হয়েছিল

sudo mysqld_safe --skip-grant-tables

রুট হিসাবে অ্যাক্সেস পেতে, অন্য সমস্ত ব্যবহারকারী এখনও জরিমানা অ্যাক্সেস করতে পারে।

কলামটি mysql.userমূলের জন্য সারণীটির দিকে তাকিয়ে আমি pluginসেট করেছি unix_socketঅন্য সমস্ত ব্যবহারকারী এটি 'mysql_native_password' তে সেট করা আছে। এই পৃষ্ঠায় একটি তাত্ক্ষণিকভাবে দেখুন: https://mariadb.com/kb/en/mariadb/unix_sket-authentication-plugin/ ব্যাখ্যা করে যে ইউনিক্স সকেট uidব্যবহারকারীর সাথে ক্লায়েন্টের সাথে চলমান প্রক্রিয়াটির সাথে মিল রেখে লগ ইন সক্ষম করে mysql.userটেবিল। অন্য কথায় মারিয়্যাডবি অ্যাক্সেস rootকরতে আপনাকে রুট হিসাবে লগ ইন করতে হবে।

নিশ্চিতভাবেই যথেষ্ট যে আমার মারিয়্যাডবি ডেমন প্রমাণীকরণের সাথে পুনরায় চালু করা প্রয়োজন আমি মূল হিসাবে লগইন করতে পারি

sudo mysql -u root -p

অথবা

sudo su -
mysql -u root -p

এটি সম্পন্ন করে আমি সুডো না করে কীভাবে অ্যাক্সেস করব সে সম্পর্কে ভাবলাম যা এই মাইএসকিএল অনুসন্ধানগুলি চালানোর বিষয় মাত্র is

GRANT ALL PRIVILEGES on *.* to 'root'@'localhost' IDENTIFIED BY '<password>';
FLUSH PRIVILEGES;

( <password>আপনার পছন্দসই মাইএসকিএল রুট পাসওয়ার্ডের পরিবর্তে )। এই সক্ষম ব্যবহারকারীকে পাসওয়ার্ড সক্ষম করে password

বিকল্পভাবে মাইএসকিএল ক্যোয়ারী চলছে:

UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket';
FLUSH PRIVILEGES;

পাসওয়ার্ড পরিবর্তন না করে পাসওয়ার্ড লগইন ব্যবহার করতে রুট অ্যাকাউন্টটি পরিবর্তন করে দেবে, তবে এটি আপনাকে কোনও মাইএসকিএল / মারিয়্যাডবি ইনস্টল করে এতে কোনও মূল পাসওয়ার্ড ছাড়াই ছেড়ে দিতে পারে।

এর যে কোনও একটির পরে আপনাকে মাইএসকিএল / মারিয়্যাডবি পুনরায় চালু করতে হবে:

sudo service mysql restart

এবং ভয়েলা আমার ব্যক্তিগত অ্যাকাউন্ট থেকে আমার কাছে অ্যাক্সেস ছিল mysql -u root -p

দয়া করে নোট করুন যে এইটি করা সিকিউরিটি হ্রাস করছে সম্ভবত: মারিয়াডিবি বিকাশকারীরা কোনও ভাল কারণে এর জন্য রুট অ্যাক্সেসের কাজটি বেছে নিয়েছে।

এ সম্পর্কে ভাবতে ভাবতে আমি খুব খুশি sudo mysql -u root -pতাই আমি আবার ফিরে যাচ্ছি, তবে আমি ভেবেছিলাম যে আমি অন্য কোথাও খুঁজে পাচ্ছি না বলে আমার সমাধান পোস্ট করব।


7
"মারিয়াডবকে মূল হিসাবে অ্যাক্সেস করতে আপনাকে মূল হিসাবে লগ ইন করতে হবে।" - এই বাক্যটি উত্তরের শীর্ষে থাকা উচিত।
ফিলিপ লুডভিগ

1
আপনি ব্যক্তিগত GRANT ALL PRIVILEGES on *.* to 'root'@'localhost' IDENTIFIED BY '<password>'; গোপনীয়তার আগে দু'বার কমান্ডটি চালাচ্ছেন কেন ?
ব্লেয়ারজ 23

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

1
বিটিডব্লিউ, আপনি যদি আমার মতো অলস হন তবে আপনি দুটি সেকেন্ডের মতো সঞ্চয় করতে পারবেনsudo service mysql restart
zeisi

1
টিপটির জন্য ধন্যবাদ, দেবের জন্য দুর্দান্ত তবে আপনি কীভাবে এটি মূল দিকে ফিরিয়ে দেন?
স্যাম

42

পরিষ্কার উবুন্টু 16.04 এলটিএসে, লোকালহোস্টের জন্য মারিয়াডিবি রুট লগইন পাসওয়ার্ড স্টাইল থেকে সুডো লগইন স্টাইলে পরিবর্তিত হয়েছে ...

সুতরাং, ঠিক না

sudo mysql -u root

যেহেতু আমরা পাসওয়ার্ড দিয়ে লগইন করতে চাই, অন্য একজন ব্যবহারকারী 'ব্যবহারকারী' তৈরি করুন

মারিয়াডিবি কনসোলে ... (আপনি 'sudo mysql -u root' দিয়ে মারিয়াডিবি কনসোলে পাবেন)

use mysql
CREATE USER 'user'@'localhost' IDENTIFIED BY 'yourpassword';
\q

তারপরে বাশ শেল প্রম্পটে,

mysql-workbench

এবং আপনি লোকালহোস্টে 'আপনারপাসওয়ার্ড' দিয়ে 'ব্যবহারকারীর' সাথে লগইন করতে পারেন


12

কমান্ড চেষ্টা করুন

sudo mysql_secure_installation

এন্টার টিপুন এবং জন্য একটি নতুন পাসওয়ার্ড নির্ধারণ রুট মধ্যে MySQL / mariadb

আপনি যদি একটি ত্রুটি পেতে

ERROR 2002 (HY000): সকেটের মাধ্যমে স্থানীয় মাইএসকিউএল সার্ভারের সাথে সংযোগ স্থাপন করতে পারে না '/var/run/mysqld/mysqld.sock'

সাথে পরিষেবা সক্ষম করুন

service mysql start

এখন আপনি যদি আবার প্রবেশ করুন

mysql -u root -p

যদি আপনি সমস্যা অনুসরণ প্রবেশ sudo suএবং mysql -u root -pএখন অনুমতির আবেদন রুট

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '<password>';

এটি মারিয়াডিবিতে আমার সমস্যার সমাধান করেছে ।

শুভকামনা



3

মরিয়াদবকে মূল হিসাবে অ্যাক্সেস করতে আমাকে উবুন্টুকে রুট হিসাবে লগইন করতে হয়েছিল। এটি "হার্ডডেন ..." এর সাথে কিছু করার থাকতে পারে যা আপনি প্রথম ইনস্টল করার সময় আপনাকে তা করতে অনুরোধ জানায়। তাই:

$ sudo su
[sudo] password for user: yourubunturootpassword
# mysql -r root -p
Enter password: yourmariadbrootpassword

এবং আপনি ভিতরে আছেন।


2

সুবিধাগুলি ফ্ল্যাশ করার নতুন কমান্ডটি হ'ল:

FLUSH PRIVILEGES

পুরানো কমান্ড FLUSH ALL PRIVILEGESআর কাজ করে না।

আপনি দেখতে দেখতে একটি ত্রুটি পাবেন:

MariaDB [(none)]> FLUSH ALL PRIVILEGES; ERROR 1064 (42000): 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 'ALL PRIVILEGES' at line 1

আশাকরি এটা সাহায্য করবে :)


0

মাইএসকিএল_আপগ্রেড চালান।

যে পরীক্ষা

SHOW GRANTS FOR 'root'@'localhost';

বলেছেন

GRANT ALL PRIVILEGES ON ... WITH GRANT OPTION 

সারণীটি _mysql.proxies_priv_ উপস্থিত রয়েছে তা পরীক্ষা করুন।

সুবিধাগুলি দেওয়ার চেষ্টা করার সময় ব্যবহারকারীর 'রুট' @ 'লোকালহোস্ট' এর জন্য অ্যাক্সেস অস্বীকার করা হয়েছে। আমি কীভাবে সুযোগ সুবিধা দেব?


0

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

সকেট প্লাগইনটি পরীক্ষা করে যে সকেট ব্যবহারকারীর নাম (অপারেটিং সিস্টেম ব্যবহারকারীর নাম) ক্লায়েন্ট প্রোগ্রাম দ্বারা নির্দিষ্ট মাইএসকিউএল ব্যবহারকারীর নামটি সার্ভারের সাথে মেলে কিনা এবং নামগুলি মেলে তবেই সংযোগের অনুমতি দেয়।

পরিবর্তে আপনি মাইএসকিএল_নেটিভ_প্যাসওয়ার্ডটি দিয়ে ফিরে যেতে চাইতে পারেন , যা প্রমাণীকরণের জন্য ব্যবহারকারীর / পাসওয়ার্ডের প্রয়োজন হবে।

আমাদের সম্পর্কে পদ্ধতি যা অর্জন, আমি সুপারিশ এই পরিবর্তে।

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