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

مشاهدة النسخة كاملة : لينكس نسخة احتياطية من قاعدة البيانات !!!



MySql
26-10-2001, 03:13 AM
السلام عليكم

كالعادة ، كلما واجهت مشكلة رجعت إليكم :)

أريد أن أعمل نسخة احتياطية لقاعدة البيانات MySql ، وأعرف أن هناك أمراً خاصاً لذلك وهو :

mysqldump dbname -u dbusername -p > destenation folder

حيث :

1. <dbname> = اسم قاعدة البيانات
2. <dbusername> = اسم المستخدم لقاعدة البيانات
3. <destenation folder> = اسم ملف sql

ولكن حينما انفذ الامر تخرج لي هذه الرسالة :

command not found

وقد انتقلت إلى فولدر mysql فوجدت الأمر وحاولت تنفيذ الأمر من داخل مجلد mysql في bin إلا أن هذه الرسالة خرجت لي :

Permission denied

العجيب أن البرمشن المحمول عليه هو 555

وعندما غيرت البيرمشن إلى 755 لم يتغير شيء ؟! :غضب:

فكيف يمكن أن أحل هذه المشكلة ، علماً أن حساب الرووت لدي .

مشرف المنتدى
26-10-2001, 06:15 AM
جرب تسوي العملية باستخدام الرووت. سواء رووت النظام.. او رووت قواعد البيانات. يعني dbusername يكون root

MySql
26-10-2001, 01:35 PM
السلام عليكم ...

لقد جربت ذلك :

mysqldump vb -u root -p > backup.sql

ولكن خرجت نفس الرسالة :

command not found :":

Mohammed_Yousif
28-10-2001, 08:47 AM
المشكلة أن الدليل الموجود به الملف mysqldump غير موجود في المسار الافتراضي المعرف بالمتغير $PATH

بفرض أن الملف mysqldump موجود في الدلبل /usr/bin
ولكن يمكنك تشغيل الملف بكتابة اسم الملف كاملاً
فإذا كنت بدليل آخر غير الدليل الموجود به الملف استخدم الأمر
/usr/bin/mysqldump
وإذا كنت بداخل الدليل الموجود به الملف استخدم الأمر
./mysqldump
( لاحظ النقطة قبل اسم الملف فالنقطة هي الدليل الحالي عوضاً عن /usr/bin )

ويمكنك تعديل المتغير $PATH ليحوي الدليل الموجود به mysqldump ( أو /usr/bin كما افترضت ) بالأمر :

إذا كنت تستخدم bash (Bourne Again Shell) (وهو الاحتمال الأغلب)

cat >> /etc/profile
ثم اضغط مفتاح الادخال واكتب السطر
export PATH=$PATH:/usr/bin (مع تغيير /usr/bin إلى الدليل الموجود به mysqldump )
ثم اضغط مفتاح الادخال ثم اضغط التتابع Ctrl-D

أما إذا كنت تستخدم csh (C Shell) ( وهو الاحتمال الأقل )

cat >> /etc/csh.login
ثم اضغط مفتاح الادخال واكتب السطر
setenv PATH $PATH:/usr/bin (مع تغيير /usr/bin إلى الدليل الموجود به mysqldump )
ثم اضغط مفتاح الادخال ثم اضغط التتابع Ctrl-D



وبعد ذلك اخرج من النظام بالأمر logout ثم ادخل مرة أخرى

تذكر : يمكنك دوماً معرفة الدليل الحالي باستخدم الأمر pwd

MySql
29-10-2001, 11:10 AM
:) شكراً لك يا أستاذ محمد . سأجرب وأقول لك النتائج

تحياتي لكل من ساعد أو حاول :أفكر:

MySql
31-10-2001, 10:39 AM
أشكرك أخي محمد من كل أعماق قلبي ، لقد نجت في عمل نسخة احتياطية لقاعدة البيانات :cool:

---------------

أخي اسمح لي أن أطرح عليك أو على الأخوة الكرام هذان السؤلان :

1- كيف يمكن إنشاء قاعدة بيانات جديدة ، ما هو الأمر الخاص ؟
2- إذا أردت حذف مجلد وبه مجموعة ملفات ومجلدات فإني استخدم أمر rm -r ولكنه يزعجني بطلب تاكيد الحذف ! هل هناك وسيلة لمنع تأكيد حذف كل ملف (يعني يأكد مرة واحدة للجميع) ؟

وشاكر ومقدر لكم مجهوداتكم :)

Mohammed_Yousif
31-10-2001, 05:40 PM
شكرك أخي محمد من كل أعماق قلبي ، لقد نجحت في عمل نسخة احتياطية لقاعدة البيانات
مبروك :)

كيف يمكن إنشاء قاعدة بيانات جديدة ، ما هو الأمر الخاص ؟
يمكنك ذلك باستخدام الأمر :
echo "create database mydb" | mysql
حيث اسم قاعدة البيانات هو mydb

أو يمكنك بطريقة تفاعلية استخدام برنامج mysql بكتابة اسمه :
mysql
سيظهر لك المحث الخاص به أكتب به هذا الأمر :
create database mydb
حيث اسم قاعدة البيانات هو mydb
ثم اضغط مفتاح الإدخال


إذا أردت حذف مجلد وبه مجموعة ملفات ومجلدات فإني استخدم أمر rm -r ولكنه يزعجني بطلب تاكيد الحذف ! هل هناك وسيلة لمنع تأكيد حذف كل ملف (يعني يأكد مرة واحدة للجميع) ؟

أصلاً الأمر rm لا يحتوي على تأكيد ولكنه يحتوي على المعامل rm -i وبذلك سيطلب تأكيداً
ولكن لخطورة الأمر rm فهناك ما يسمى بـalias يمكنك من خلاله جعل الشيل يتفاعل مع النظام كأنك كتبت rm -i كلما كتبت rm فقط ( وهذا بالتأكيد معد سابقاً باستخدام الأمر alias rm="rm -i" )
وللتأكد من وجود هذا الـalias قم بكتابة الأمر :
alias
وسيخبرك النظام بكل الـaliases الموجودة في الشيل

وعلى كل حال يمكنك إزالة الـalias عن الأمر rm باستخدام الأمر :
unalias rm

بعد ذلك يمكنك المسح بدون إزعاج ;)


وإذا كنت ترغب في إلغاء هذا الـalias تماماً حتى بعد الخروج من النظام (لا أنصحك بذلك لخطورة الأمر rm فقد تقوم بإلغاء النظام بأكمله دون أن تشعر وخاصة أن الأمر rm لا يخرج أية مخرجات إلا مع وجود أخطاء) يمكنك البحث عن الأمر ( alias rm="rm -i" ) داخل الملفات التالية :
/etc/profile
/etc/profile.d/*
طبعاً لن تبحث يدوياً فيمكنك استخدام الأمر :
grep rm /etc/profile
وهكذا على بقية الملفات حتى تجده
عندما تجده افتحه بأي محرر نصوص ثم احذفه من الملف واحفظه واخرج من النظام ثم ادخل مرة أخرى

ملحوظة : هذه الخطوات فقط إذا كنت تستخدم bash أما إذا كنت تستخدم tcsh فعليك بالبحث عن السطر ( alias rm rm -i ) بدلاً من السطر ( alias rm="rm -i" )

أما إذا كنت تستخدم pdksh فعليك بالبحث عن السطر ( alias rm='rm -i' ) بدلاً من السطر ( alias rm="rm -i" )

MySql
31-10-2001, 08:48 PM
السلام عليكم ورحمة الله وبركاته

أشكر لك أخي محمد سرعة استجابتك :cool:

لقد فادني جداً أمر unalias rm جداً جداً جداً ....

فجزاك الله خيراً أنت ومن تحب

لكن يا أستاذي ، عندما جربت كتابة الأمر :

echo "create database mydb" | mysql

خرجت لي هذه الرسالة المقيته :":
command not found

وعندما حاولت أن استخدم mysql بطريقة تفاعلية كتب :

mysql

إلا ان هذه الرسالة المقيتة تكررت :
command not found

وأحببت أن أتفلسف فقلت ربما أحتاج أن اكتب المسار كاملاً فكتبت :

/usr/local/plesk/mysql/bin/create database mydb

فخرجت لي هذه الرسالة :
No such file or directory

وحينما انقلت إلى المجلد لأتأكد لم أجد ملفاً باسم create :(

فأجوا منك يا أستاذي أن تبين لي السبب وطريقة الحل ، إن أمكن لك ذلك ..

تحياتي لشخصكم الكريم :)

Mohammed_Yousif
04-11-2001, 10:28 AM
آسف على التأخير

طالما أن الدليل الخاص بـmysql غير موجود ضمن المتغير $PATH فسيكون عليك كتابته كاملاً

create ليس ملفاً ولكنه أمر ضمن لغة SQL التي يتعامل معها الملف mysql ولذلك أكتب المسار الخاص بالملف mysql هكذا :
echo "create database mydb" | /usr/local/plesk/mysql/bin/mysql

أو :
/usr/local/plesk/mysql/bin/mysql
ثم :
create database mydb
حيث mydb هو اسم قاعدة البيانات

بالمناسبة : لا داعي لكلمة أستاذ فكلنا دوماً تلاميذ للعلم

MySql
04-11-2001, 12:39 PM
شكراً أخي محمد

لقد جربت الطريقة إلا أن هذه الرسالة خرجت لي :


[root@www /root]# echo "create database vb" | /usr/local/plesk/mysql/bin/mysql
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)

ولا أعلم ما السبب مع أن حساب الرووت لدي