মাইএসকিউএল কমান্ড লাইন ব্যবহার করে ব্যবহারকারীর অ্যাকাউন্টগুলির একটি তালিকা পাবেন কীভাবে?


1347

আমি মাইএসকিউএল কমান্ড লাইন ইউটিলিটি ব্যবহার করছি এবং একটি ডাটাবেস মাধ্যমে নেভিগেট করতে পারেন। এখন আমার ব্যবহারকারীর অ্যাকাউন্টগুলির একটি তালিকা দেখতে হবে। কিভাবে আমি এটি করতে পারব?

আমি মাইএসকিউএল সংস্করণ ব্যবহার করছি 5.4.1


@ মুস্তফা কেন শিরোনাম পরিবর্তন? এই উত্তরগুলি এখানে এসকিউএল রয়েছে যা আপনি যে কোনও কমান্ড লাইন নয়, যে কোনও জায়গা থেকে চালাতে পারেন। এবং এই ট্যাগটি প্রশ্ন যুক্ত করে?
রূপ

আমার সম্পাদনার উদ্দেশ্য ছিল শিরোনাম এবং বর্ণনার মধ্যে ধারাবাহিকতা বজায় রাখা, তবে আমি মনে করি আপনার কাছে একটি ভাল বক্তব্য রয়েছে। আপনার সম্পাদনাটি মিঃ @ রুপ করুন
মুস্তফা হাদিদ

উত্তর:


1848

এই প্রশ্নটি ব্যবহার করুন:

SELECT User FROM mysql.user;

যা এর মতো একটি টেবিল আউটপুট দেবে:

+-------+
| User  |
+-------+
| root  |
+-------+
| user2 |
+-------+

ম্যাথু শার্লে এই উত্তরের মন্তব্যে যেমন উল্লেখ করেছেন , আপনি Userযদি অনন্য ব্যবহারকারীর নাম দেখতে চান তবে আপনি কলাম অনুসারে গ্রুপ করতে পারেন ।


47
আমি মনে করি Userযে কেবলমাত্র অনন্য ব্যবহারকারীর মানগুলি অর্জন করার জন্য, এছাড়াও খুব বেশি গ্রুপিং করা প্রয়োজন, যেহেতু প্রতিটি user@ hostএন্ট্রির জন্য পৃথক সারি রয়েছে ।
ম্যাথু শার্লে

5
এসকিএল কোয়েরি ছাড়াই কীভাবে একই তথ্য সন্ধান করবেন ??
দিব্যংশু দাস

8
@ বাররিকার্টার DELETE FROM mysql.user;আরও ভাল আছে WHERE user='someuser' and host='somehost';যদি আপনি এটি করেন তবে DELETE FROM mysql.user;সমস্ত ব্যবহারকারী চলে গেছে। পরবর্তী মাইএসকিএল-এর পরে লগইনগুলি FLUSH PRIVILEGES;ব্যবহারকারীদের মেমরি থেকে পুনঃসূচনা করতে বা মুছে ফেলার জন্য । DELETE FROM mysql.userদায়িত্বের সাথে করার বিষয়ে আমার পোস্টগুলির একটি উদাহরণ এখানে রয়েছে : dba.stackexchange.com/questions/4614/…
রোল্যান্ডোমাইএসকিউএলডিবিএ

3
@ জিফ্রেSHOW GRANTS FOR 'user'@'host';
অভিনব প্যান্টস

5
দলবদ্ধকরণের পরিবর্তে আপনি কেবল DISTINCTকীওয়ার্ডটি ব্যবহার করতে পারেন :SELECT DISTINCT user FROM mysql.user;
user2683246

445

আমি এই ফর্ম্যাটটিকে সবচেয়ে দরকারী বলে মনে করি এটিতে হোস্ট ফিল্ড অন্তর্ভুক্ত যা ব্যবহারকারীর রেকর্ডগুলির মধ্যে পার্থক্য করতে মাইএসকিউএলে গুরুত্বপূর্ণ।

select User,Host from mysql.user;

1
উৎসুক. hostমাইএসকিএল ডাটাবেসগুলির সাথে কাজ করার সময় এটি কখন আসবে? [
মাইসকিএল নুব

7
hostআপনি যখন অন্য কোনও সার্ভার থেকে সংযোগ করছেন তখন @ প্যাকারটি খেলতে আসবে। এর পক্ষে বিভিন্ন অ্যাক্সেস দেওয়া সম্ভব 'packer'@'example.com'এবং'packer'@'google.com'
রে বাক্সটার

118

একটি ব্যবহারকারীর অ্যাকাউন্টে ব্যবহারকারীর নাম এবং হোস্ট স্তরের অ্যাক্সেস থাকে।

অতএব, এটি এমন ক্যোয়ারী যা সমস্ত ব্যবহারকারীর অ্যাকাউন্ট দেয়

SELECT CONCAT(QUOTE(user),'@',QUOTE(host)) UserAccount FROM mysql.user;

7
এটি মূলত স্পেকেনের উত্তরের মতো । ব্যবহারকারী এবং হোস্ট কলামগুলি সম্মতি দিয়ে কী লাভ?
আইয়েন স্যামুয়েল ম্যাকলিন বয়স্ক

8
একটি উদাহরণ: user@hostফর্ম্যাটটি পাসওয়ার্ড সেট করার জন্য ব্যবহৃত হয়। SET PASSWORDকমান্ড থেকে হোস্টকে ছাড় দেওয়া একটি ত্রুটি তৈরি করে। SET PASSWORD FOR wordpressuser = PASSWORD('...');ত্রুটি উত্পাদন করে ERROR 1133 (42000): Can't find any matching row in the user table। হোস্টটি অন্তর্ভুক্ত করুন এবং এটি কাজ করে। SET PASSWORD FOR wordpressuser@localhost = PASSWORD('...');উত্পাদন Query OK, 0 rows affected (0.00 sec)
আইয়েন স্যামুয়েল ম্যাকলিন বয়স্ক

3
সেরা উত্তর, নয়েসয়াররা যা-ই অভিযোগ করতে পারে। কেবলমাত্র আমি পরিবর্তন করতে চাই ORDER BY userএটির জন্য এটি যুক্ত করা হয়েছিল ।
sjas

48

ব্যবহারকারীরা যখন বিভিন্ন উত্স থেকে সংযুক্ত হন তাদের পুনরাবৃত্তি এড়াতে:

select distinct User from mysql.user;

31

মাইএসকিউএল তার নিজস্ব ডাটাবেসে ব্যবহারকারীর তথ্য সংরক্ষণ করে। ডাটাবেসের নাম MySQL। সেই ডাটাবেসের ভিতরে, ব্যবহারকারীর তথ্য একটি টেবিলের মধ্যে থাকে, একটি ডেটাসেট নামে থাকে user। আপনি যদি মাইএসকিউএল ব্যবহারকারী সারণিতে ব্যবহারকারীদের সেট আপ করা হয় তা দেখতে চাইলে নিম্নলিখিত কমান্ডটি চালান:

SELECT User, Host FROM mysql.user;

+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| root             | localhost |
| root             | demohost  |
| root             | 127.0.0.1 |
| debian-sys-maint | localhost |
|                  | %         |
+------------------+-----------+

30

আপনি যদি প্রকৃত মাইএসকিউএল ব্যবহারকারীদের উল্লেখ করছেন তবে চেষ্টা করুন:

select User from mysql.user;

23
SELECT * FROM mysql.user;

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


2
আমি বিভিন্ন হোস্ট সহ 3 টি রুট ব্যবহারকারী পেয়েছি। localhost, 127.0.0.1এবং ::1। আমার কোনটি অবশ্যই রাখা উচিত এবং আমার কী মুছতে হবে? ধন্যবাদ!
ইমোলেটিলি

4
আপনি যদি চান না যে লোকেরা নেটওয়ার্কের মাধ্যমে সংযোগ স্থাপন করতে পারে তবে পুরানো মানকটি হ'ল এই সমস্তটি মুছে ফেলা হয়েছিল। যদিও আজকাল, মনে হচ্ছে প্রস্তাবটি হ'ল লোকাল হোস্টগুলি রাখা, কারণ তারা কোনওভাবেই নেটওয়ার্কের মাধ্যমে অ্যাক্সেসযোগ্য নয়; এর অর্থ এই পরিবর্তে আপনারা সমস্ত কিছু রাখা উচিত ।
ট্রাইসিস

18

রুট হিসাবে mysql এ লগইন করুন এবং নিম্নলিখিত কোয়েরি টাইপ করুন

select User from mysql.user;

+------+
| User |
+------+
| amon |
| root |
| root |
+------+

আমি লগ ইনকে মূল হিসাবে উল্লেখ করার জন্য +1 বলব। আমি এটি না করেই চেষ্টা করেছি এবং এটি কার্যকর হয়নি;)
লেনিফি

ব্যবহারকারীর তালিকা প্রদর্শনের জন্য আপনাকে ব্যবহারকারী 1 কে সুবিধাগুলি দেওয়া দরকার। রুট ব্যবহারকারী ছাড়া আপনি ত্রুটি পাবেন। তাই প্রথমে সুবিধাগুলি সরবরাহ করুন। রুট ইউজার হিসাবে লগ ইন করুন তারপর কমান্ড টাইপ করুন GRANT SELECT ON mysql.user TO 'user1'@'localhost'; এখন ইউজার 1 হিসাবে লগইন করুন এবং কমান্ড টাইপ করুন select User from mysql.user; আপনি দেখতে পাবেন ব্যবহারকারী তালিকা প্রদর্শিত হবে। :) +1 উপভোগ করুন
সন্দীপ দিভেকার

15

Mysql.db সারণি ব্যবহারকারীর অধিকার নির্ধারণের ক্ষেত্রে সম্ভবত আরও গুরুত্বপূর্ণ। আমি মনে করি আপনি যদি GRANT কমান্ডের কোনও সারণির উল্লেখ করেন তবে এতে একটি এন্ট্রি তৈরি করা হয়েছে। আমার ক্ষেত্রে যখন mysql.users সারণীটি ব্যবহারকারীর জন্য স্পষ্টতই সংযোগ স্থাপন এবং নির্বাচন করতে সক্ষম হয় ইত্যাদি কোনও অনুমতি দেখায় না etc.

mysql> select * from mysql.db;
mysql> select * from db;
+---------------+-----------------+--------+-------------+-------------+-------------+--------
| Host          | Db              | User   | Select_priv | Insert_priv | Update_priv | Del...

1
আমার দৃষ্টিতে যা গুরুত্বপূর্ণ তা হল ব্যবহারকারীদের ডাটাবেসে কী করার অনুমতি দেওয়া হয়। সুতরাং "গ্রেটগুলি দেখান" বেশ কার্যকর কারণ এটি দেখায় কে কাকে করার অনুমতি দেওয়া হয়েছে।
বিকাশকারী মারিয়াস Žilėnas

12

আমি এটি ব্যবহারকারীদের বাছাই করতে ব্যবহার করি, সুতরাং অনুমতিপ্রাপ্ত হোস্টগুলি স্পট করা আরও সহজ:

mysql> SELECT User,Host FROM mysql.user ORDER BY User,Host;

11

পিটার এবং জেসি সঠিক তবে কেবল আপনি প্রথমে মাইএসকিএল ডিবি নির্বাচন করেছেন তা নিশ্চিত করুন।

use mysql;

select User from mysql.user;

এটি আপনার কৌশল করা উচিত


22
use mysql;আপনার মতো মাইএসকিএল ডাটাবেসে টেবিলটি স্কোপ করার ক্ষেত্রে এটি প্রয়োজনীয় নয় । আপনি ঠিক করতে পারেনselect User from mysql.user;
ভাইটা লাই

5
যোগ use mysql;করা ঠিক তাই আপনি select User from user;পরিবর্তে select User from mysql.user;এটি ব্যবহার করতে পারেন যেহেতু এটি সাধারণত এককালীন ক্যোয়ারী হয়, তাই মাইএসকিএল ডিবি ব্যবহার করার দরকার নেই
ড্যান

1
পরে use mysqlযদি আপনি ব্যবহার করেছিল select user from user;যে এর চেয়ে কিছু হয়ে থাকতে পারে, কিন্তু এর পরিবর্তে আপনি ব্যবহার করছেন mysql.user, যা ব্যবহার করে তোলে use mysqlঅপ্রয়োজনীয় প্রারম্ভে।
Sнаđошƒаӽ


5
$>  mysql -u root -p -e 'Select user from mysql.user' > allUsersOnDatabase.txt

লিনাক্স প্রম্পটে এই কমান্ডটি প্রয়োগ করা হলে প্রথমে মাইএসকিএল রুট ব্যবহারকারীর পাসওয়ার্ড জিজ্ঞাসা করা হবে, সঠিক পাসওয়ার্ড দেওয়ার পরে এটি সমস্ত ডাটাবেস ব্যবহারকারীদের পাঠ্য ফাইলে মুদ্রণ করবে।


3

আমি তার আরও একটি দরকারী হিসাবে এটি ডিএমএল এবং ডিডিএল সুবিধাগুলি সম্পর্কে অতিরিক্ত তথ্য সরবরাহ করে

SELECT user, Select_priv, Insert_priv , Update_priv, Delete_priv, 
       Create_priv, Drop_priv, Shutdown_priv, Create_user_priv 
FROM mysql.user;

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