MySQL හි විධාන රේඛාව භාවිතා කර පරිශීලක ගිණුම් ලැයිස්තුවක් ලබා ගන්නේ කෙසේද?


1349

මම MySQL විධාන රේඛා උපයෝගීතාව භාවිතා කරන අතර දත්ත සමුදායක් හරහා සැරිසැරීමට හැකිය. දැන් මට පරිශීලක ගිණුම් ලැයිස්තුවක් දැකීමට අවශ්‍යයි. මට මෙය කළ හැක්කේ කෙසේද?

මම MySQL අනුවාදය භාවිතා කරමි 5.4.1.


Ust මුස්තාපා මාතෘකාව වෙනස් වන්නේ ඇයි? මෙම පිළිතුරු SQL යනු ඔබට විධාන රේඛාවක් පමණක් නොව ඕනෑම තැනක සිට ධාවනය කළ හැකිය. එම ටැගය ප්‍රශ්නයට එකතු කරන්නේ කුමක්ද?
රූප්

මගේ සංස්කරණයේ පරමාර්ථය වූයේ මාතෘකාව සහ විස්තරය අතර අනුකූලතාව පවත්වා ගැනීමයි, නමුත් මම හිතන්නේ ඔබට හොඳ කරුණක් තිබේ. ඔබේ සංස්කරණය කරන්න @ රූප් මහතා
මුස්තාපා හැඩිඩ්

Answers:


1851

මෙම විමසුම භාවිතා කරන්න:

SELECT User FROM mysql.user;

මේ වගේ වගුවක් ප්‍රතිදානය කරන්නේ:

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

මෙම පිළිතුර පිළිබඳ අදහස් දැක්වීමේදී මැතිව් ෂාර්ලි පෙන්වා දෙන පරිදි , ඔබට Userඅද්විතීය පරිශීලක නාම පමණක් දැකීමට අවශ්‍ය නම් ඔබට තීරුව අනුව කණ්ඩායම් කළ හැකිය .


47
Userසෑම user@ hostප්‍රවේශයක් සඳහාම වෙනම පේළියක් ඇති බැවින් අද්විතීය පරිශීලක අගයන් පමණක් ලබා ගැනීම සඳහා කණ්ඩායම්ගත කිරීම අවශ්‍ය විය හැකි යැයි මම සිතමි .
මැතිව් ෂාර්ලි

5
SQL විමසුමකින් තොරව එකම තොරතුරු සොයා ගන්නේ කෙසේද ??
දිව්‍යාන්ෂු දාස්

8
ry barrycarter DELETE FROM mysql.user;වඩා හොඳය ඔබ WHERE user='someuser' and host='somehost';එසේ කළහොත් DELETE FROM mysql.user;, සියලු පරිශීලකයින් අතුරුදහන් වේ. ඊළඟ mysql නැවත ආරම්භ කිරීමෙන් පසු FLUSH PRIVILEGES;ප්‍රවේශ වීම හෝ පරිශීලකයින් මතකයෙන් ඉවත් කිරීම. DELETE FROM mysql.userවගකීමෙන් යුතුව කටයුතු කිරීම පිළිබඳ මගේ එක් සටහනකට
RolandoMySQLDBA

3
E ජෙෆ්රිSHOW GRANTS FOR 'user'@'host';
ෆැන්සි පැන්ට්ස්

5
කණ්ඩායම් කිරීම වෙනුවට ඔබට DISTINCTSELECT DISTINCT user FROM mysql.user;
යතුරුපදය

445

පරිශීලක වාර්තා අතර වෙනස හඳුනා ගැනීම සඳහා MySQL හි වැදගත් වන ධාරක ක්ෂේත්‍රය එයට ඇතුළත් බැවින් මෙම ආකෘතිය වඩාත් ප්‍රයෝජනවත් බව මට පෙනේ.

select User,Host from mysql.user;

1
කුතුහලයෙන්. මෙම ඇත විට hostMySQL දත්ත සමුදායන් සමඟ වැඩ දිනය නිමා වන විට පැමිණ? [Mysql Noob]
ප්‍රභාකර උඳුර්ති

7
hostඔබ වෙනත් සේවාදායකයකින් සම්බන්ධ වන විට පැකර් ක්‍රියාත්මක වේ. එය වෙනස් පිවිසුම් ලබා දීමට හැකි වන 'packer'@'example.com'අතර'packer'@'google.com'
රේ Baxter

118

පරිශීලක ගිණුමක් පරිශීලක නාමය සහ ධාරක මට්ටමේ ප්‍රවේශය සමන්විත වේ.

එබැවින්, සියලු පරිශීලක ගිණුම් ලබා දෙන විමසුම මෙයයි

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

7
මෙය මූලික වශයෙන් spkane ගේ පිළිතුරට සමාන වේ. පරිශීලක සහ ධාරක තීරු එකිනෙක සම්බන්ධ කිරීමේ වාසිය කුමක්ද?
ඉයන් සැමුවෙල් මැක්ලීන් එල්ඩර්

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 පරිශීලක තොරතුරු එහි දත්ත ගබඩාවේ ගබඩා කරයි. දත්ත සමුදායේ නම වේ MySQL. එම දත්ත ගබඩාව තුළ, පරිශීලක තොරතුරු වගුවක, දත්ත කට්ටලයක් නම් කර userඇත. MySQL පරිශීලක වගුවේ පරිශීලකයින් සකසා ඇති දේ බැලීමට ඔබට අවශ්‍ය නම්, පහත විධානය ක්‍රියාත්මක කරන්න:

SELECT User, Host FROM mysql.user;

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

30

ඔබ නියම MySQL භාවිතා කරන්නන් වෙත යොමු කරන්නේ නම්, උත්සාහ කරන්න:

select User from mysql.user;

23
SELECT * FROM mysql.user;

එය විශාල වගුවක් බැවින් ඔබ තෝරා ගන්නා ක්ෂේත්‍ර පිළිබඳව වඩාත් තෝරා බේරා කටයුතු කිරීමට ඔබට අවශ්‍ය විය හැකිය.


2
මට විවිධ ධාරකයන් සහිත root පරිශීලකයින් 3 ක් ලැබුණි. localhost, 127.0.0.1සහ ::1. මා තබා ගත යුත්තේ කුමක්ද සහ මා මකා දැමිය යුත්තේ කුමක්ද? ස්තූතියි!
චිත්තවේගීයත්වය

4
ජාලය හරහා මිනිසුන් සම්බන්ධ වීමට ඔබට අවශ්‍ය නැතිනම්, පැරණි ප්‍රමිතිය වූයේ මේ සියල්ල මකා දැමීමයි. වර්තමානයේ, කෙසේ වෙතත්, නිර්දේශය වන්නේ දේශීය හොස්ට් ඒවා කෙසේ හෝ ජාලයට පිවිසිය නොහැකි බැවින් ඒවා තබා ගැනීමයි; මෙයින් අදහස් කරන්නේ ඔබ ඒ වෙනුවට ඒවා සියල්ලම තබා ගත යුතු බවයි.
trysis

18

Root ලෙස mysql වෙත පිවිස පහත විමසුම ටයිප් කරන්න

select User from mysql.user;

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

ලොග් වීම root ලෙස සඳහන් කිරීම සඳහා මම +1 යැයි කියමි. මම එසේ නොකර උත්සාහ කළ නමුත් එය සාර්ථක වූයේ නැත;)
leenephi

පරිශීලක ලැයිස්තුව පෙන්වීම සඳහා පරිශීලක 1 ට වරප්‍රසාද ලබා දිය යුතුය. මූල පරිශීලකයා නොමැතිව ඔබට දෝෂයක් ලැබෙනු ඇත. එබැවින් පළමුව වරප්‍රසාද ලබා දෙන්න. Root පරිශීලකයෙකු ලෙස ලොග් වී විධානය ටයිප් GRANT SELECT ON mysql.user TO 'user1'@'localhost'; කර user1 ලෙස ටයිප් කර විධානය ටයිප් කරන්න select User from mysql.user; . :) +1 භුක්ති විඳින්න
සඳිප් දිවාකර්

15

පරිශීලක අයිතිවාසිකම් තීරණය කිරීමේදී mysql.db වගුව වඩා වැදගත් වේ. මම හිතන්නේ ඔබ GRANT විධානයෙහි වගුවක් සඳහන් කළහොත් එහි ඇතුළත් කිරීමක් නිර්මාණය වේ. මගේ නඩුවේදී, mysql.users වගුව මඟින් පරිශීලකයාට සම්බන්ධ වීමට හා තෝරා ගැනීමට හැකි වූ විට කිසිදු අවසරයක් නොපෙන්වයි.

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

1
මගේ මතය අනුව වැදගත් වන්නේ දත්ත සමුදායේ පරිශීලකයින්ට කිරීමට අවසර දී ඇති දෙයයි. එබැවින් "SHOW GRANTS" බෙහෙවින් ප්‍රයෝජනවත් වන්නේ එය කළ හැක්කේ කාටද යන්න අවසර දී ඇති බැවිනි.
සංවර්ධක මාරියස් Žilėnas

12

පරිශීලකයින් වර්ග කිරීම සඳහා මම මෙය භාවිතා කරමි, එබැවින් අවසර ලත් ධාරකයන් හඳුනා ගැනීම පහසුය:

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

11

පීටර් සහ ජෙසී නිවැරදි නමුත් ඔබ මුලින්ම mysql DB තෝරා ගැනීමට වග බලා ගන්න.

use mysql;

select User from mysql.user;

එය ඔබේ උපක්‍රමය කළ යුතුය


22
use mysql;ඔබ කළාක් මෙන් mysql දත්ත ගබඩාවට වගුව පරික්ෂා කිරීම අවශ්‍ය නොවේ . ඔබට පුළුවන්select User from mysql.user;
vitaLee

5
එකතු කිරීම use mysql;යනු සාමාන්‍යයෙන් එක් වරක් විමසුමක් බැවින් ඔබට select User from user;ඒ වෙනුවට භාවිතා කළ හැකිය select User from mysql.user;, mysql db භාවිතා කිරීම අවශ්‍ය නොවේ
Dan

1
පසු use mysqlඔබ භාවිතා කර ඇති නම්, select user from user;ඊට වඩා දෙයක් විය හැකිව, එහෙත් ඒ වෙනුවට ඔබ භාවිතා කරන mysql.userභාවිතා වන පරිදි, use mysqlආරම්භක අනවශ්ය දී.
Sнаđошƒаӽ

10

මෙය අද්විතීය පරිශීලකයින්ගේ ලැයිස්තුවක් පෙන්වයි:

SELECT DISTINCT User FROM mysql.user;

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

මෙම විධානය ලිනක්ස් විමසුමේ ක්‍රියාත්මක කිරීමෙන් පළමුව mysql root පරිශීලකයාගේ මුරපදය ඉල්ලනු ඇත, නිවැරදි මුරපදයක් ලබා දීමෙන් එය සියලු දත්ත සමුදා පරිශීලකයින් පෙළ ගොනුවට මුද්‍රණය කරනු ඇත.


3

ඩීඑම්එල් සහ ඩීඩීඑල් වරප්‍රසාද පිළිබඳ අමතර තොරතුරු සපයන බැවින් ඔහුගේ තවත් එකක් මට ප්‍රයෝජනවත් විය

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.