මම MySQL විධාන රේඛා උපයෝගීතාව භාවිතා කරන අතර දත්ත සමුදායක් හරහා සැරිසැරීමට හැකිය. දැන් මට පරිශීලක ගිණුම් ලැයිස්තුවක් දැකීමට අවශ්යයි. මට මෙය කළ හැක්කේ කෙසේද?
මම MySQL අනුවාදය භාවිතා කරමි 5.4.1
.
මම MySQL විධාන රේඛා උපයෝගීතාව භාවිතා කරන අතර දත්ත සමුදායක් හරහා සැරිසැරීමට හැකිය. දැන් මට පරිශීලක ගිණුම් ලැයිස්තුවක් දැකීමට අවශ්යයි. මට මෙය කළ හැක්කේ කෙසේද?
මම MySQL අනුවාදය භාවිතා කරමි 5.4.1
.
Answers:
මෙම විමසුම භාවිතා කරන්න:
SELECT User FROM mysql.user;
මේ වගේ වගුවක් ප්රතිදානය කරන්නේ:
+-------+
| User |
+-------+
| root |
+-------+
| user2 |
+-------+
මෙම පිළිතුර පිළිබඳ අදහස් දැක්වීමේදී මැතිව් ෂාර්ලි පෙන්වා දෙන පරිදි , ඔබට User
අද්විතීය පරිශීලක නාම පමණක් දැකීමට අවශ්ය නම් ඔබට තීරුව අනුව කණ්ඩායම් කළ හැකිය .
User
සෑම user
@ host
ප්රවේශයක් සඳහාම වෙනම පේළියක් ඇති බැවින් අද්විතීය පරිශීලක අගයන් පමණක් ලබා ගැනීම සඳහා කණ්ඩායම්ගත කිරීම අවශ්ය විය හැකි යැයි මම සිතමි .
DELETE FROM mysql.user;
වඩා හොඳය ඔබ WHERE user='someuser' and host='somehost';
එසේ කළහොත් DELETE FROM mysql.user;
, සියලු පරිශීලකයින් අතුරුදහන් වේ. ඊළඟ mysql නැවත ආරම්භ කිරීමෙන් පසු FLUSH PRIVILEGES;
ප්රවේශ වීම හෝ පරිශීලකයින් මතකයෙන් ඉවත් කිරීම. DELETE FROM mysql.user
වගකීමෙන් යුතුව කටයුතු කිරීම පිළිබඳ මගේ එක් සටහනකට
SHOW GRANTS FOR 'user'@'host';
DISTINCT
SELECT DISTINCT user FROM mysql.user;
පරිශීලක වාර්තා අතර වෙනස හඳුනා ගැනීම සඳහා MySQL හි වැදගත් වන ධාරක ක්ෂේත්රය එයට ඇතුළත් බැවින් මෙම ආකෘතිය වඩාත් ප්රයෝජනවත් බව මට පෙනේ.
select User,Host from mysql.user;
host
MySQL දත්ත සමුදායන් සමඟ වැඩ දිනය නිමා වන විට පැමිණ? [Mysql Noob]
host
ඔබ වෙනත් සේවාදායකයකින් සම්බන්ධ වන විට පැකර් ක්රියාත්මක වේ. එය වෙනස් පිවිසුම් ලබා දීමට හැකි වන 'packer'@'example.com'
අතර'packer'@'google.com'
පරිශීලක ගිණුමක් පරිශීලක නාමය සහ ධාරක මට්ටමේ ප්රවේශය සමන්විත වේ.
එබැවින්, සියලු පරිශීලක ගිණුම් ලබා දෙන විමසුම මෙයයි
SELECT CONCAT(QUOTE(user),'@',QUOTE(host)) UserAccount FROM mysql.user;
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)
.
ORDER BY user
කිරීම පමණි.
පරිශීලකයින් විවිධ සම්භවයන්ගෙන් සම්බන්ධ වන විට පුනරාවර්තනය වීම වළක්වා ගැනීමට:
select distinct User from mysql.user;
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 |
| | % |
+------------------+-----------+
ඔබ නියම MySQL භාවිතා කරන්නන් වෙත යොමු කරන්නේ නම්, උත්සාහ කරන්න:
select User from mysql.user;
SELECT * FROM mysql.user;
එය විශාල වගුවක් බැවින් ඔබ තෝරා ගන්නා ක්ෂේත්ර පිළිබඳව වඩාත් තෝරා බේරා කටයුතු කිරීමට ඔබට අවශ්ය විය හැකිය.
localhost
, 127.0.0.1
සහ ::1
. මා තබා ගත යුත්තේ කුමක්ද සහ මා මකා දැමිය යුත්තේ කුමක්ද? ස්තූතියි!
Root ලෙස mysql වෙත පිවිස පහත විමසුම ටයිප් කරන්න
select User from mysql.user;
+------+
| User |
+------+
| amon |
| root |
| root |
+------+
GRANT SELECT ON mysql.user TO 'user1'@'localhost';
කර user1 ලෙස ටයිප් කර විධානය ටයිප් කරන්න select User from mysql.user;
. :) +1 භුක්ති විඳින්න
පරිශීලක අයිතිවාසිකම් තීරණය කිරීමේදී mysql.db වගුව වඩා වැදගත් වේ. මම හිතන්නේ ඔබ GRANT විධානයෙහි වගුවක් සඳහන් කළහොත් එහි ඇතුළත් කිරීමක් නිර්මාණය වේ. මගේ නඩුවේදී, mysql.users වගුව මඟින් පරිශීලකයාට සම්බන්ධ වීමට හා තෝරා ගැනීමට හැකි වූ විට කිසිදු අවසරයක් නොපෙන්වයි.
mysql> select * from mysql.db;
mysql> select * from db;
+---------------+-----------------+--------+-------------+-------------+-------------+--------
| Host | Db | User | Select_priv | Insert_priv | Update_priv | Del...
පරිශීලකයින් වර්ග කිරීම සඳහා මම මෙය භාවිතා කරමි, එබැවින් අවසර ලත් ධාරකයන් හඳුනා ගැනීම පහසුය:
mysql> SELECT User,Host FROM mysql.user ORDER BY User,Host;
පීටර් සහ ජෙසී නිවැරදි නමුත් ඔබ මුලින්ම mysql DB තෝරා ගැනීමට වග බලා ගන්න.
use mysql;
select User from mysql.user;
එය ඔබේ උපක්රමය කළ යුතුය
use mysql;
ඔබ කළාක් මෙන් mysql දත්ත ගබඩාවට වගුව පරික්ෂා කිරීම අවශ්ය නොවේ . ඔබට පුළුවන්select User from mysql.user;
use mysql;
යනු සාමාන්යයෙන් එක් වරක් විමසුමක් බැවින් ඔබට select User from user;
ඒ වෙනුවට භාවිතා කළ හැකිය select User from mysql.user;
, mysql db භාවිතා කිරීම අවශ්ය නොවේ
use mysql
ඔබ භාවිතා කර ඇති නම්, select user from user;
ඊට වඩා දෙයක් විය හැකිව, එහෙත් ඒ වෙනුවට ඔබ භාවිතා කරන mysql.user
භාවිතා වන පරිදි, use mysql
ආරම්භක අනවශ්ය දී.
මෙය අද්විතීය පරිශීලකයින්ගේ ලැයිස්තුවක් පෙන්වයි:
SELECT DISTINCT User FROM mysql.user;
$> mysql -u root -p -e 'Select user from mysql.user' > allUsersOnDatabase.txt
මෙම විධානය ලිනක්ස් විමසුමේ ක්රියාත්මක කිරීමෙන් පළමුව mysql root පරිශීලකයාගේ මුරපදය ඉල්ලනු ඇත, නිවැරදි මුරපදයක් ලබා දීමෙන් එය සියලු දත්ත සමුදා පරිශීලකයින් පෙළ ගොනුවට මුද්රණය කරනු ඇත.
ඩීඑම්එල් සහ ඩීඩීඑල් වරප්රසාද පිළිබඳ අමතර තොරතුරු සපයන බැවින් ඔහුගේ තවත් එකක් මට ප්රයෝජනවත් විය
SELECT user, Select_priv, Insert_priv , Update_priv, Delete_priv,
Create_priv, Drop_priv, Shutdown_priv, Create_user_priv
FROM mysql.user;
SELECT User FROM mysql.user;
Mysql පරිශීලකයින් ලබා ගැනීමට ඉහත විමසුම භාවිතා කරන්න