النتائج 1 إلى 2 من 2

الموضوع: كيفية التعامل مع ال Mysql باستخدام ال Shell

  1. #1
    الصورة الرمزية ضيف المهاجر
    Title
    المدير العام
    تاريخ التسجيل
    05- 2002
    المشاركات
    6,428

    كيفية التعامل مع ال Mysql باستخدام ال Shell

    ############ xD #######
    ## الموضوع : كيفية التعامل مع ال Mysql باستخدام ال Shell ، اقتراحات
    ## كاتب الموضوع : Ali Hamad
    ## الحقوق : يمنع نسخ الموضوع او نقله خارج AWT ولامانع من وضع روابط للموضوع .
    ## رقم الدرس : 1
    ## تحذير : انت تستخدم هذا الدرس على مسؤوليتك الخاصة فقط
    ########### xD #######

    س1 : كيفيه انشاء قواعد بيانات باستخدام الشل ؟


    /usr/bin/mysqladmin creat DATABASENAME


    حيث ان DATABASENAME هو اسم القاعدة التي تريد انشائها ، ولنفترض انها يوجد لدي اسم مستخدم في السيرفر باسم Ali .

    اذن سيكون الامر :

    /usr/bin/mysqladmin creat Ali_xD



    افتراضا ان اسم قاعدة البيانات xD .

    س 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');


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

    س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');


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

    لنقم الان بالخروج من شل قواعد البيانات ،
    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;





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

    س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 بالباسورد الذي قمنا باختياره .



    س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


    س6 : لدي سيرفر ، واريد ان اقوم بعمل بك لقواعد البيانات كل 6 ساعات لحظف المتغير فقط ؟
    لا مشاكل
    اطبع الاوامر :


    mkdir /backup/mysql


    chmod 0755 /backup/mysql


    vi /******s/mysqlbackup

    بعد كذا راح تحرر الملف ، وتكتب الاسطر التاليه


    #!/bin/bash
    /usr/bin/rsync -arzgopu /var/lib/mysql /backup/mysql


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

    chmod 755 /******s/mysqlbackup


    طبعا تبي تضيف كرون جوب على اساس يتنفذ الملف كل 6 ساعات مثلا
    اطبع الامر :


    echo "0 */6 * * * /******s/dbbackup" >> /var/spool/cron/root


    وصار عندك بك اب منفصل لقواعد البيانات في مجلد اخر كل 6 ساعات لكل قواعد البيانات لاخذ المتغيرات فقط ، مع العلم بانه يمكن اخذ بك اب بطريقة


    mysqlHotCopy or mysqldump -u - p --all-database > Any.sql


    س7 : لا استخدم السي بنل ، ونسيت كلمة المرور الخاصة ب Root ال Mysql ، كيف اقوم باستعادة الباسورد او تغيره ؟

    1/ في البداية ايقاف كل عمليات قواعد البيانات على السيرفر :

    killall -9 mysqld


    /etc/init.d/mysql stop


    kill 'cat /var/lib/mysql/File.pid'


    file.pid = hostname.pid كمثال :
    server.arabwebtalk.pid


    التاكد من انه لايوجد اي عملية mysql تعمل على السيرفر :


    ps -auxww | grep mysql


    ماراح يظهر لك غير سطر واحد ، دليل ان كل العمليات الخاصه بال mysql توقفت .
    بعد كذا راح تسوي ملف صغير نفترض ان اسمه :
    /home/xd
    اذن :
    vi /home/xd
    بعد كذا تحط فيه الامر هذا :

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

    بعدين حفظ للملف
    طبعا تستبدل كلمة
    YourNewPasswd
    بكلمة المرور الجديده ، طبعا بدون تشفير ، مثلا ابي الباسورد يكون AWT ، رايح يكون الامر :


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



    بعد كذا راح تكتب الامر هذا في الشل :

    /usr/bin/mysqld_safe --init-file=/home/xd


    لاحظ امتداد الملف ، اذن ستعمل قواعد البيانات من جديد بعد تغير الباسورد الى باسوردك الجديد
    ومن ثم تحذف الملف

    rm /hom/xd -rf


    ** لو تستخدم السي بنل ، تقدر من ال WHM وايضا لو نسيت الباسورد تقدر تطلع الناتج :

    cat /root/.my.cnf


    لكن لو اتبعت الطريقة اعلاه ، لازم بعد كذا تسوي الامر هذا :
    nano -w /root/.my.cnf
    او اي محرر ثاني ،
    وتغير الباسورد القديم بالباسورد الي اخترته ، وبعدها تطبق الامر :

    mysqladmin reload


    س8 : كيف اقوم بعمل repair او optimize او analyze لقاعدة معينه او كل القواعد على السيرفر بالشل ؟

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

    /usr/bin/mysqlcheck -r --databases


    لعمل ريبير لكل القواعد في السيرفر :


    /usr/bin/mysqlcheck -r --all-databases


    لعمل ابتومياز لقاعدة معينة :


    /usr/bin/mysqlcheck -o --databases


    لعمل ابتومايز لكل القواعد :


    /usr/bin/mysqlcheck -o --all-databases



    في النهاية :
    انا اتبعت في الشرح طريقة معقده ، والا كان هناك اوامر اخرى يمكن تطبيقها مثل Mysqlaccess و GRANT في ال Mysql شل ، ولكن كل الغاية في فهم الطريقة التي تعمل بها قواعد البيانات ،

    ملاحظة :
    كل الاوامر الي كتبت اعلاه يبي لك ، تفتح ملف نصي وتقراها من اليسار الى اليمين CTRL + Shift " اليسار " .


    منقول للفائدة


    تحياتي
    التعديل الأخير تم بواسطة ضيف المهاجر ; 20 - 08 - 2005 الساعة 21:42
    <div style=text-align: center;><b><span style=font-family: Courier New><font size=4><a href=http://www.sultanqaboos.net target=_blank>موقع السلطان قابوس</a>
<a href=https://hmhaitham.om/ target=_blank><b><span style=font-family: Courier New><font size=4>موقع السلطان هيثم</font></span></b></a>
<a href=http://www.alrasby.net target=_blank>الراسبي نت</a>
</font></span></b>

</div>

  2. #2
    الصورة الرمزية AlBalushi
    Title
    نبض جديــد
    تاريخ التسجيل
    02- 2005
    العمر
    44
    المشاركات
    148
    الله يوفقك ويجزاك كل خير موضوع مهم وشرح محترفين

معلومات الموضوع

الأعضاء الذين يشاهدون هذا الموضوع

الذين يشاهدون الموضوع الآن: 1 (0 من الأعضاء و 1 زائر)

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

RSS RSS 2.0 XML MAP HTML