المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : [درس]:[كيفية التعامل مع ال Mysql باستخدام ال Shell]


Mohannad
12-14-2007, 04:43 PM
س 2 : كيف ساقوم بانشاء اسم مستخدم للقاعدة للتحكم بها ؟

قبل كل شيء لابد ان تقوم بمعرفة باسورد الروت الخاص بقواعد البيانات :


cat /root/.my.cnf



سيجلب لك باسورد الروت الخاص بقواعد البيانات .

## اذن كيف ساقوم بانشاء اسم مستخدم لقاعدة البيانات ؟
في البداية لابد من الدخول على محرر الشل الخاص بقواعد البيانات ،

mysql -uroot -p

سيطلب منك باسورد الروت الخاص بقواعد البيانات ، تقوم بادخاله ومن ثم انتر ،

بعد ذلك ستقوم بكتابة الامر :

use mysql;

للدخول على قاعدة البيانات التي سيتم العمل عليها ، لنقم الان بانشاء اسم مستخدم ولكن كما نعرف بانه سيكون لاسم المستخدم باسورد خاص به ، اذن لنحضر كلمة المرور الخاصه بالاسم المراد انشائه اولا ولنفترض باني اريد الباسورد AliHamad، اطبع الامر :


SELECT PASSWORD('AliHamad');

سيظهر الباسورد كالتالي :
+-----------------------+
| PASSWORD ('AliHamad') |
+-----------------------+
| 5428fa3b0b637ab8 |
+-----------------------+

اذن سنستخدم الشفرة :
5428fa3b0b637ab8

سنقوم الان بانشاء اسم المستخدم بالباسورد الذي قمنا بانشائه ولنفترض بان اسم المستخدم سيكون ali_xD:
نطبع الامر التالي في شل ال mysql


INSERT INTO user (Host, User, Password) VALUES ('localhost', 'Ali_xD', '5428fa3b0b637ab8');


قمنا الان باضافة اليوزر بنفس الباسورد الذي استنتجناه سابقا ،

Mohannad
12-14-2007, 04:45 PM
س3 : كيف اقوم باضافة اسم المستخدم الى قاعدة البيانات التي قمت بانشائها سابقا ؟
نقوم الان بالدخول الى شل قواعد البيانات ،
mysql -uroot -p
نقوم بادخال باسورد الروت لقواعد البيانات
ومن ثم نقوم بالدخول الى القاعدة mysql

use mysql;


بعد ذلك نقوم باضافة اسم المستخدم الى قاعدة البيانات مع الخصائص التي نريد اعطائها له

INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Create_tmp_table_priv, Lock_tables_priv) VALUES ('localhost', 'Ali_xD', 'Ali_xD', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'n','Y', 'Y', 'Y', 'Y', 'Y');

قمنا الان باضافة اسم المستخدم بكلمة المرور الخاصه به الى قاعدة البيانات التي انشأناها سابقا ،

ويوجد طريقة اخرى ، ساقوم بذكرها في الاسفل :

1) الدخول على شل المايسقول :

mysql -uroot -p

طباعة الامر :


GRANT ALL PRIVILEGES ON DATABASENAME.* TO USER@"LOCALHOST" IDENTIFIED BY 'PASSWD' WITH GRANT OPTION;

تفصيل الامر :
DATABASENAME = اسم قاعدة البايانات .
USER = اسم المستخدم لقاعدة البيانات
LOCALHOST = الهوست الموجود عليه قاعدة البيانات وهو في الغالب localhost
PASSWD = كلمة المرور الخاصة بقواعد البيانات .

ولو رجعنا للمثال ، سيكون الامر :



GRANT ALL PRIVILEGES ON Ali_xD.* TO Ali_xD@"%" IDENTIFIED BY 'AliHamad' WITH GRANT OPTION;


لنقم الان بالخروج من شل قواعد البيانات ،
exit
نطبع الامر التالي لحفظ التغييرات :

mysqladmin reload

لقنم الان بالتاكد من ان اسم المستخدم اعلاه لايقوم الا بالدخول على قاعدة البيانات المحدده له بالخصائص التي اعطيناه اياها سابقا :

mysql -uAli_xD -p

نقوم بطباعة الباسورد الخاص بالقاعدة Ali_xD " في المثال هي ( AliHamad) ، ومن ثم نقوم بطباعة الامر :

use mysql;

ستظر النتيجه :

ERROR 1044: Access denied for user: 'Ali_xD@localhost' to database 'mysql'

لانه لايمكن صلاحية الدخول في الاصل ، ولكن لنبطع الامر :

use Ali_xD;

عند اذن سيقبل الدخول بالتاكيد لتلك القاعدة .

Mohannad
12-14-2007, 04:45 PM
س4 : هل يوجد هناك امر للتاكد من الخصائص المعطاه لليوزر اعلاه بالدخول على تلك القاعدة فقط ؟


نعم ، لنقم بالدخول على شل Mysql :

mysql -uroot -p



بعد ان تقوم بادخال باسورد قاعدة البيانات نقوم بطباعة الامر :


SHOW GRANTS FOR 'Ali_xD'@'localhost';


ستظهر النتيجة :
+-------------------------------------------------------------------------------------------+
| Grants for Ali_xD@localhost |
+-------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'Ali_xD'@'localhost' IDENTIFIED BY PASSWORD '5428fa3b0b637ab8' |
| GRANT ALL PRIVILEGES ON `Ali_xD`.* TO 'Ali_xD'@'localhost' |
+-------------------------------------------------------------------------------------------+

كما نشاهد بان الخصائص فقط حددت لليوزر Ali_xD للقاعدة Ali_xD بالباسورد الذي قمنا باختياره .

####فاصل للراحة #####
# يانعمة السي بنل ####
####انتهى الفاصل #####

Mohannad
12-14-2007, 04:46 PM
س5: هل بالامكان تغيير الباسورد الخاص باسم المستخدم ؟

بالتاكيد نعم بالطريقة التالية :

* الدخول على شل قواعد البيانات :

mysql -uroot -p

* ادخل باسورد روت ال Mysql
ثم اطبع الامر :


SET PASSWORD FOR 'Ali_xD'@'localhost' = PASSWORD('YourNewPasswd');


حيث ان ال YourNewPasswd هو باسوردك الجديد بدون تشفير ، ولنفترض اني اريد الباسورد الجديد يكون AWT ، اذن الامر سيكون :


SET PASSWORD FOR 'Ali_xD'@'localhost' = PASSWORD('AWT');

الان نقوم بالخروج من ال شل قواعد البيانات ،
exit

ومن ثم لحفظ المتغيرات :

mysqladmin reload

Mohannad
12-14-2007, 04:49 PM
س6 : لدي سيرفر ، واريد ان اقوم بعمل بك لقواعد البيانات كل 6 ساعات لحظف المتغير فقط ؟
لا مشاكل
اطبع الاوامر :
mkdir /backup/mysql
chmod 0755 /backup/mysql
vi /s c ripts/mysqlbackup
بعد كذا راح تحرر الملف ، وتكتب الاسطر التاليه



#!/b in/b ash
/u sr/b in/r sync -a rzgopu /v ar/l ib/m ysql /b ackup/m ysql


بعدين
:wq
انتر
اكيد راح تعطي الملف تصريح 755