سم الله الرحمن الرحيم  :
في البدايه ، شكرا للويب العربي لاعطائنا هذه الفرصه للتحاور وتناقش الاراء وتبادل الخبرات .
############ 
xD #######
## 
الموضوع : حصري ل AWT  ، كيفية التعامل مع ال Mysql  باستخدام ال Shell ، اقتراحات 
## 
كاتب الموضوع : Ali Hamad
## 
الحقوق : يمنع نسخ الموضوع او نقله خارج AWT ولامانع من وضع روابط للموضوع .
## 
رقم الدرس : 1
## 
تحذير : انت تستخدم هذا الدرس على مسؤوليتك الخاصة فقط
########### 
xD #######
س1 : كيفيه انشاء قواعد بيانات باستخدام الشل ؟
حيث ان DATABASENAME  هو اسم القاعدة التي تريد انشائها ،  ولنفترض انها يوجد لدي اسم مستخدم في السيرفر باسم Ali .
اذن سيكون الامر :
افتراضا ان اسم قاعدة البيانات xD .
ويوجد طريقه اخرى باستخدام شل ال Mysql  ، وهي كالتالي :
في البداية الدخول على شل ال Mysql :
بعد ذلك ، انشاء القاعده بالامر :
س 2 : كيف ساقوم بانشاء اسم مستخدم للقاعدة للتحكم بها ؟
قبل كل شيء لابد ان تقوم بمعرفة باسورد الروت الخاص بقواعد البيانات :
سيجلب لك باسورد الروت الخاص بقواعد البيانات .
## اذن كيف ساقوم بانشاء اسم مستخدم لقاعدة البيانات ؟
في البداية لابد من الدخول على محرر الشل الخاص بقواعد البيانات ،
سيطلب منك باسورد الروت الخاص بقواعد البيانات ، تقوم بادخاله ومن ثم انتر ،
بعد ذلك ستقوم بكتابة الامر :
للدخول على قاعدة البيانات التي سيتم العمل عليها ، لنقم الان بانشاء اسم مستخدم ولكن كما نعرف بانه سيكون لاسم المستخدم باسورد خاص به ، اذن لنحضر كلمة المرور الخاصه بالاسم المراد انشائه اولا  ولنفترض باني اريد الباسورد AliHamad، اطبع الامر  :
سيظهر الباسورد كالتالي :
+-----------------------+
| PASSWORD ('AliHamad') |
+-----------------------+
| 5428fa3b0b637ab8      |
+-----------------------+
اذن سنستخدم الشفرة :
5428fa3b0b637ab8
سنقوم الان بانشاء اسم المستخدم بالباسورد الذي قمنا بانشائه 

 ولنفترض بان اسم المستخدم سيكون ali_xD:
نطبع الامر التالي في شل ال mysql
قمنا الان باضافة اليوزر بنفس الباسورد الذي استنتجناه سابقا ، 
س3 : كيف اقوم باضافة اسم المستخدم الى قاعدة البيانات التي قمت بانشائها سابقا ؟
نقوم الان بالدخول الى شل قواعد البيانات ، 
mysql -uroot -p
نقوم بادخال باسورد الروت لقواعد البيانات 
ومن ثم نقوم بالدخول الى القاعدة 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) الدخول على شل المايسقول :
طباعة الامر :
تفصيل الامر :
DATABASENAME  = اسم قاعدة البايانات .
USER  = اسم المستخدم لقاعدة البيانات 
LOCALHOST = الهوست الموجود عليه قاعدة البيانات وهو في الغالب localhost
PASSWD = كلمة المرور الخاصة بقواعد البيانات .
ولو رجعنا للمثال ، سيكون الامر :
لنقم الان بالخروج من شل قواعد البيانات ،
exit 
نطبع الامر التالي لحفظ التغييرات :
لقنم الان بالتاكد من ان اسم المستخدم اعلاه لايقوم الا بالدخول على قاعدة البيانات المحدده له بالخصائص التي اعطيناه اياها سابقا :
نقوم بطباعة الباسورد الخاص بالقاعدة Ali_xD " في المثال هي ( AliHamad) ، ومن ثم نقوم بطباعة الامر :
ستظر النتيجه :
لانه لايمكن صلاحية الدخول في الاصل ، ولكن لنبطع الامر :
عند اذن سيقبل الدخول بالتاكيد لتلك القاعدة 

 .
س4 : هل يوجد هناك امر للتاكد من الخصائص المعطاه لليوزر اعلاه بالدخول على تلك القاعدة فقط ؟
بعد ان تقوم بادخال باسورد قاعدة البيانات نقوم بطباعة الامر :
ستظهر النتيجة :
+-------------------------------------------------------------------------------------------+
| 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  بالباسورد الذي قمنا باختياره 

 .
####فاصل للراحة 

#####
# يانعمة السي بنل 

     ####
####انتهى الفاصل 

#####
س5: هل بالامكان تغيير الباسورد الخاص باسم المستخدم ؟
بالتاكيد نعم بالطريقة التالية :
* الدخول على شل قواعد البيانات :
* ادخل باسورد روت ال Mysql 
ثم اطبع الامر :
حيث ان ال YourNewPasswd هو باسوردك الجديد بدون تشفير ، ولنفترض اني اريد الباسورد الجديد يكون AWT ، اذن الامر سيكون :
الان نقوم بالخروج من ال شل قواعد البيانات ، 
exit
ومن ثم لحفظ المتغيرات :
س6 : لدي سيرفر ، واريد ان اقوم بعمل بك لقواعد البيانات كل 6 ساعات لحظف المتغير فقط ؟
لا مشاكل 
 
 
اطبع الاوامر :
بعد كذا راح تحرر الملف ، وتكتب الاسطر التاليه 
بعدين 
:wq
انتر
اكيد راح تعطي الملف تصريح 755
طبعا تبي تضيف كرون جوب على اساس يتنفذ الملف كل 6 ساعات مثلا 
اطبع الامر :
وصار عندك بك اب منفصل لقواعد البيانات في مجلد اخر كل 6 ساعات لكل قواعد البيانات لاخذ المتغيرات فقط ، مع العلم بانه يمكن اخذ بك اب بطريقة 
س7 : لا استخدم السي بنل ، ونسيت كلمة المرور الخاصة ب Root  ال Mysql  ، كيف اقوم باستعادة الباسورد او تغيره ؟
1/ في البداية ايقاف كل عمليات قواعد البيانات على السيرفر :
file.pid  = hostname.pid  كمثال :
server.arabwebtalk.pid
## بداية فاصل ##
والله الي توقفت ال mysql  نهائي 

## نهاية فاصل ##
التاكد من انه لايوجد اي عملية mysql  تعمل على السيرفر :
ماراح يظهر لك غير سطر واحد ، دليل ان كل العمليات الخاصه بال mysql  توقفت .
بعد كذا راح تسوي ملف صغير نفترض ان اسمه :
/home/xd
اذن :
vi /home/xd
بعد كذا تحط فيه الامر هذا :
بعدين حفظ للملف 
طبعا تستبدل كلمة 
YourNewPasswd
بكلمة المرور الجديده ، طبعا بدون تشفير ، مثلا ابي الباسورد يكون AWT  ، رايح يكون الامر :
بعد كذا راح تكتب الامر هذا في الشل :
لاحظ امتداد الملف ، اذن ستعمل قواعد البيانات من جديد بعد تغير الباسورد الى باسوردك الجديد 
ومن ثم تحذف الملف 
** لو تستخدم السي بنل ، تقدر من ال WHM  وايضا لو نسيت الباسورد تقدر تطلع الناتج :
لكن لو اتبعت الطريقة اعلاه ، لازم بعد كذا تسوي الامر هذا :
nano -w /root/.my.cnf
او اي محرر ثاني ، 
وتغير الباسورد القديم بالباسورد الي اخترته ، وبعدها تطبق الامر :
س8 : كيف اقوم بعمل repair  او optimize او analyze لقاعدة معينه او كل القواعد على السيرفر بالشل ؟
لعمل ريبير لقاعدة معينة :
لعمل ريبير لكل القواعد في السيرفر :
لعمل ابتومياز لقاعدة معينة :
لعمل ابتومايز لكل القواعد :
في النهاية :
انا اتبعت في الشرح طريقة معقده ، والا كان هناك اوامر اخرى يمكن تطبيقها مثل Mysqlaccess  و GRANT في ال Mysql شل ، ولكن كل الغاية في فهم الطريقة التي تعمل بها قواعد البيانات ،
ملاحظة :
كل الاوامر الي كتبت اعلاه يبي لك ، تفتح ملف نصي وتقراها من اليسار الى اليمين CTRL + Shift " اليسار " .
اخر تعديل في الموضوع :
كانت بتاريخ 11/8/1426 هـ
صادق التحايا ،
علي حمد .