ব্যবহারকারীর 'রুট' @ '%' এর জন্য অ্যাক্সেস প্রত্যাখ্যান করা হয়েছে


29

আমি মাইএসকিউএল এর রুট ব্যবহারকারী অ্যাক্সেস করতে ব্যবহৃত। তবে সম্প্রতি, আমি আর পারছি না।

আমি সূক্ষ্ম লগইন করতে সক্ষম:

 mysql -u root -p

এখানে লগইনের পরে মাইএসকিএল স্থিতি:

mysql> status
--------------
mysql  Ver 14.14 Distrib 5.5.28, for debian-linux-gnu (i686) using readline 6.2

Connection id:      37
Current database:   
Current user:       root@localhost
SSL:            Not in use
Current pager:      stdout
Using outfile:      ''
Using delimiter:    ;
Server version:     5.5.28-0ubuntu0.12.04.3 (Ubuntu)
Protocol version:   10
Connection:     Localhost via UNIX socket
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:        /var/run/mysqld/mysqld.sock
Uptime:         4 min 16 sec

Threads: 1  Questions: 112  Slow queries: 0  Opens: 191  
Flush tables: 1  Open tables:  6  Queries per second avg: 0.437
--------------

তবে যখন আমি কোনও পদক্ষেপ নিতে চাই, যেমন:

mysql> CREATE DATABASE moyennegenerale;
ERROR 1044 (42000): Access denied for user 'root'@'%' to database 'moyennegenerale'

আমি বুঝতে পারি যে %কোনও হোস্টকে বোঝাতে ব্যবহার করা হয় তবে আমার স্ট্যাটাসটি স্পষ্টতই লোকালহোস্টকে জানিয়েছে। কারও কি ধারণা আছে যে কী চলছে?

উত্তর:


17

আমার মনে হয় আপনার বেনামে ব্যবহারকারী রয়েছে

এটি চালানোর চেষ্টা করুন:

SELECT user,host,password FROM mysql.user WHERE user='';

এটি অনামী ব্যবহারকারীদের কী উপস্থিত তা দেখায়। সম্ভবত, আপনি খালি ব্যবহারকারী, হোস্ট %এবং একটি ফাঁকা পাসওয়ার্ড সহ একটি লাইন নীচের মত দেখবেন :

mysql> select user,host,password from mysql.user;
+-----------+-------------+-------------------------------------------+
| user      | host        | password                                  |
+-----------+-------------+-------------------------------------------+
| lwdba     | 127.0.0.1   | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| lwdba     | localhost   | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| lwdba     | %           | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| root      | localhost   | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| root      | 127.0.0.1   | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| vanilla   | localhost   |                                           |
| mywife    | %           |                                           |
|           | %           |                                           | <<<--- LOOK !!!
| replicant | 10.64.113.% | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| kumar     | %           |                                           |
+-----------+-------------+-------------------------------------------+

তো, আপনি কিভাবে লগইন করলেন? এই কোয়েরিটি চালান:

SELECT USER(),CURRENT_USER();

এটি আপনাকে কী বলে?

  • ব্যবহারকারী () কীভাবে আপনি মাইএসকিউএলে প্রমাণীকরণের চেষ্টা করেছিলেন তা জানিয়েছে USER
  • CURRENT_USER () আপনাকে কীভাবে মাইএসকিউএলে অনুমোদনের অনুমতি দেওয়া হয়েছিল তা জানায়

দ্বিতীয় ফাংশনটি CURRENT_USER()প্রকাশ করে যে কোন বেনামে ব্যবহারকারী লগ ইন করতে ব্যবহৃত হয়েছিল।

আপনি লগ ইন করার সময় আপনার কোন সুবিধা ছিল?

চালানোর জন্য অনুগ্রহ করে

SHOW GRANTS;

এটি লগ ইন করার সময় আপনার কী কী সুযোগ সুবিধাগুলি প্রকাশ করা হবে a আপনাকে ডেটাবেস তৈরি করতে বাধা দেওয়া হয়েছিল তা প্রমাণ করে যে আপনি রুট নন তবে কিছু নিম্ন-সুবিধাযুক্ত ব্যবহারকারী।

আপনার ব্যবহারকারী অনুদান পরিষ্কার করুন।

মূল পাসওয়ার্ড পুনরায় সেট করার জন্য, দয়া করে নিম্নলিখিতটি করুন:

echo "SET PASSWORD FOR root@localhost=PASSWORD('password');" > /var/lib/mysql/rootpwd.sql
service mysql restart
rm -f /var/lib/mysql/rootpwd.sql

আমি এই দক্ষ পদ্ধতিটি @ শ্লোমিনিচ থেকে শিখেছি

একবার চেষ্টা করে দেখো !!!


10

অামি জানি তুমি কি করেছিলে.

এটা কর:

SELECT `User`, `Grant_priv` FROM `mysql`.`user` WHERE `User` = 'root';

আপনি সম্ভবত লক্ষ্য করবেন যে এটি গ্র্যান্ট_প্রাইভের জন্য একটি 'এন' দেয়। সুতরাং এটি করুন:

UPDATE `mysql`.`user` SET `Grant_priv` = 'Y' WHERE `User` = 'root';
FLUSH PRIVILEGES;
SELECT `User`, `Grant_priv` FROM `mysql`.`user`;

ও ওয়ালা! আশা করি এইটি কাজ করবে.


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

এটি বন্ধ হয়ে যাওয়ার সাথে সংযোগটি পুনরায় খোলার (হেইডিএসকিউএল থেকে আমার ক্ষেত্রে) কৌশলটি করেছে!
xorinzor

4

rootব্যবহারকারী হিসাবে প্রবেশ করার পরে আপনার সুবিধাগুলি পরীক্ষা করুন:

 mysql> show grants for 'root'@'localhost';

আপনার সুবিধাগুলি যাচাই করার পরে আপনি অন্য ব্যবহারকারীকে সমস্ত সুযোগ সুবিধা দেওয়ার চেষ্টা করতে পারেন, বা আপনি rootব্যবহারকারীকে আবার সমস্ত সুযোগ সুবিধা দেওয়ার চেষ্টা করতে পারেন :

 mysql> grant all privileges on *.* to 'root'@'localhost';

যদি আপনার rootব্যবহারকারীর অধিকার না থাকে তবে আপনি সেগুলি পুনরুদ্ধার করার চেষ্টা করতে পারেন, তাই:

mysqldসার্ভারটি বন্ধ করুন

এইভাবে সার্ভারটি পুনরায় চালু করুন mysqld_safe --skip-grant-table

এর rootসাথে সুবিধাগুলি পুনরুদ্ধার করুন :

 mysql> flush privileges;
 mysql> grant all privileges on *.* to 'root'@'localhost' with grant option;

'রুট' @ 'লোকালহোস্ট' কমান্ডের জন্য শো অনুদানের পরে আমি

দ্বিতীয় কমান্ডের আউটপুট কি?

2
ডেবিয়ানে এটি করার একটি "আরও ভাল" উপায় রয়েছে, যেখানে আপনাকে সার্ভারটি পুনরায় চালু করার দরকার নেই। ঠিক তেমন rootসংযোগ করুন debian-sys-maint@localhostএবং পাসওয়ার্ডটি ব্যবহার করুন /etc/mysql/debian.cnf। এই ব্যবহারকারীর মাইএসকিউএলে সমস্ত সুযোগ রয়েছে have ভাল জিনিস আপনি আপনার সার্ভার পুনরায় আরম্ভ করার প্রয়োজন হবে না।
অ্যান্ডার্স

এটা চেষ্টা কর. sudo mysql --defaults-file = / etc / mysql / debian.cnf
Anders

0

আপনার সুবিধাগুলি কমে যেতে পারে?

এছাড়াও, আপনি রুট সুবিধাগুলি সহ অন্য একটি অ্যাকাউন্ট তৈরি করার চেষ্টা করতে পারেন।

এবং রুট ব্যবহারকারী মুছুন, এবং নির্দিষ্ট সুবিধাগুলি দিয়ে পুনরায় তৈরি করুন।

এটি সহায়ক হতে পারে: http://dev.mysql.com/doc/refman/5.5/en/resetting-permitted.html

C.5.4.1.2 - লিনাক্স (কে তৈরি করেছেন এমন ক্যোয়ারী দিয়ে ফাইল তৈরি করুন, সম্পূর্ণ মূল অধিকার সহ নতুন ব্যবহারকারী)

C.5.4.1.1 - উইন্ডোজ (যারা তৈরি করেছেন এমন প্রশ্নের সাথে ফাইল তৈরি করুন, সম্পূর্ণ মূল অধিকার সহ নতুন ব্যবহারকারী)

অনুসন্ধান: (মূল ব্যবহারকারী তৈরি করুন)

  CREATE USER 'new_root'@'%' IDENTIFIED BY '***';
  GRANT ALL PRIVILEGES ON *.* TO 'new_root'@'%' IDENTIFIED BY '***' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;

মাইএসকিউএল ম্যানুয়াল ব্যবহারকারী তৈরি করুন: http://dev.mysql.com/doc/refman/5.5/en/adding-users.html

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