السلام عليكم
بسم الله نبدا
\ كيفيه انشاء قواعد بيانات باستخدام الشل
؟
رمز:
/usr/bin/mysqladmin creat DATABASENAME
حيث
ان DATABASENAME هو اسم القاعدة التي تريد انشائها ، ولنفترض انها يوجد لدي اسم
مستخدم في السيرفر باسم Ali .
رمز:
/usr/bin/mysqladmin creat Ali_xD
افتراضا
ان اسم قاعدة البيانات xD .
ويوجد طريقه اخرى باستخدام شل ال Mysql ، وهي
كالتالي :
في البداية الدخول على شل ال Mysql :
بعد
ذلك ، انشاء القاعده بالامر :
رمز:
create database Ali_xD
س
2 : كيف ساقوم بانشاء اسم مستخدم للقاعدة للتحكم بها ؟
قبل كل شيء لابد ان
تقوم بمعرفة باسورد الروت الخاص بقواعد البيانات :
سيجلب
لك باسورد الروت الخاص بقواعد البيانات .
## اذن كيف ساقوم بانشاء اسم
مستخدم لقاعدة البيانات ؟
في البداية لابد من الدخول على محرر الشل الخاص بقواعد
البيانات ،
سيطلب
منك باسورد الروت الخاص بقواعد البيانات ، تقوم بادخاله ومن ثم انتر ،
بعد
ذلك ستقوم بكتابة الامر :
للدخول
على قاعدة البيانات التي سيتم العمل عليها ، لنقم الان بانشاء اسم مستخدم ولكن كما
نعرف بانه سيكون لاسم المستخدم باسورد خاص به ، اذن لنحضر كلمة المرور الخاصه
بالاسم المراد انشائه اولا ولنفترض باني اريد الباسورد 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
بعد
ذلك نقوم باضافة اسم المستخدم الى قاعدة البيانات مع الخصائص التي نريد اعطائها له
رمز:
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) الدخول على
شل المايسقول :
طباعة
الامر :
رمز:
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
نطبع الامر التالي لحفظ التغييرات
:
لقنم
الان بالتاكد من ان اسم المستخدم اعلاه لايقوم الا بالدخول على قاعدة البيانات
المحدده له بالخصائص التي اعطيناه اياها سابقا :
نقوم
بطباعة الباسورد الخاص بالقاعدة Ali_xD " في المثال هي ( AliHamad) ، ومن ثم نقوم
بطباعة الامر :
ستظر
النتيجه :
رمز:
ERROR 1044: Access denied for user: 'Ali_xD@localhost' to database 'mysql'
لانه
لايمكن صلاحية الدخول في الاصل ، ولكن لنبطع الامر :
عند
اذن سيقبل الدخول بالتاكيد لتلك القاعدة .
س4 : هل يوجد هناك امر للتاكد من
الخصائص المعطاه لليوزر اعلاه بالدخول على تلك القاعدة فقط ؟
نعم ، لنقم
بالدخول على شل Mysql :
بعد
ان تقوم بادخال باسورد قاعدة البيانات نقوم بطباعة الامر :
رمز:
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
ثم اطبع الامر :
رمز:
SET PASSWORD FOR 'Ali_xD'@'localhost' = PASSWORD('YourNewPasswd');
حيث
ان ال YourNewPasswd هو باسوردك الجديد بدون تشفير ، ولنفترض اني اريد الباسورد
الجديد يكون AWT ، اذن الامر سيكون :
رمز:
SET PASSWORD FOR 'Ali_xD'@'localhost' = PASSWORD('AWT');
الان
نقوم بالخروج من ال شل قواعد البيانات ،
exit
ومن ثم لحفظ المتغيرات
:
س6
: لدي سيرفر ، واريد ان اقوم بعمل بك لقواعد البيانات كل 6 ساعات لحظف المتغير فقط
؟
لا مشاكل
اطبع الاوامر :
رمز:
chmod 0755 /backup/mysql
رمز:
vi /scripts/mysqlbackup
بعد
كذا راح تحرر الملف ، وتكتب الاسطر التاليه
رمز:
#!/bin/bash
/usr/bin/rsync -arzgopu /var/lib/mysql /backup/mysql
بعدين
:wq
انتر
اكيد راح تعطي الملف تصريح 755
رمز:
chmod 755 /scripts/mysqlbackup
طبعا
تبي تضيف كرون جوب على اساس يتنفذ الملف كل 6 ساعات مثلا
اطبع الامر
:
رمز:
echo "0 */6 * * * /scripts/mysqlbackup" >> /var/spool/cron/root
وصار
عندك بك اب منفصل لقواعد البيانات في مجلد اخر كل 6 ساعات لكل قواعد البيانات لاخذ
المتغيرات فقط ، مع العلم بانه يمكن اخذ بك اب بطريقة
رمز:
mysqlHotCopy or mysqldump -u - p --all-database > Any.sql
س7
: لا استخدم السي بنل ، ونسيت كلمة المرور الخاصة ب Root ال Mysql ، كيف اقوم
باستعادة الباسورد او تغيره ؟
1/ في البداية ايقاف كل عمليات قواعد البيانات
على السيرفر :
رمز:
/etc/init.d/mysql stop
رمز:
kill 'cat /var/lib/mysql/File.pid'
file.pid
= hostname.pid كمثال :
server.arabwebtalk.pid
## بداية فاصل
##
والله الي توقفت ال mysql نهائي
## نهاية فاصل ##
التاكد من انه
لايوجد اي عملية mysql تعمل على السيرفر :
رمز:
ps -auxww | grep mysql
ماراح
يظهر لك غير سطر واحد ، دليل ان كل العمليات الخاصه بال mysql توقفت .
بعد كذا
راح تسوي ملف صغير نفترض ان اسمه :
/home/xd
اذن :
vi /home/xd
بعد كذا
تحط فيه الامر هذا :
رمز:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('YourNewPasswd');
بعدين
حفظ للملف
طبعا تستبدل كلمة
YourNewPasswd
بكلمة المرور الجديده ، طبعا
بدون تشفير ، مثلا ابي الباسورد يكون style ، رايح يكون الامر :
رمز:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('style');
بعد
كذا راح تكتب الامر هذا في الشل :
رمز:
/usr/bin/mysqld_safe --init-file=/home/xd
لاحظ
امتداد الملف ، اذن ستعمل قواعد البيانات من جديد بعد تغير الباسورد الى باسوردك
الجديد
ومن ثم تحذف الملف
**
لو تستخدم السي بنل ، تقدر من ال WHM وايضا لو نسيت الباسورد تقدر تطلع الناتج
:
لكن
لو اتبعت الطريقة اعلاه ، لازم بعد كذا تسوي الامر هذا :
رمز:
nano -w /root/.my.cnf
او
اي محرر ثاني ،
وتغير الباسورد القديم بالباسورد الي اخترته ، وبعدها تطبق
الامر :
س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
ملاحظة
:
كل الاوامر الي كتبت اعلاه يبي لك ، تفتح ملف نصي وتقراها من اليسار الى
اليمين CTRL + Shift " اليسار " .
منقول من الويب العربي