اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

وعليكم السلام ورحمة الله وبركاته.

أولا تحتاج أن تتعلم كيفية إستخدام إستعلام mysqldump في mysql لأخذ نسخة إحتياطية من قاعدة البيانات . حيث هذا هو الإستعلام الذي ستقوم به وكتابته في كود php ويمكنك تعلم المزيد حول كيفية إستيراد وتصدير قاعدة بيانات mysql من خلال المقال التالي :

وإليك الكود التالي لفعل ذلك من خلال php :

<?php
// بيانات الاتصال بقاعدة البيانات
$host = 'localhost';     // خادم myqsl
$user = 'root';          // اسم المستخدم
$pass = '';              // كلمة المرور
$dbname = 'database_name';  // اسم قاعدة البيانات

// تحديد اسم الملف الذي سيتم حفظ النسخة الاحتياطية فيه
$backupFile = 'backup_' . $dbname . '_' . date('Y-m-d_H-i-s') . '.sql';

// إستعلام mysql الخاص بأخذ نسخة إحتياطية
$command = "mysqldump --host=$host --user=$user --password=$pass $dbname > $backupFile";

// تنفيذ الأمر
system($command, $output);

// التأكد من أن النسخة الاحتياطية تم إنشاؤها
if ($output === 0) {
    echo "تم إنشاء النسخة الاحتياطية بنجاح!";
} else {
    echo "حدث خطأ أثناء إنشاء النسخة الاحتياطية.";
}
?>

وإليك الإجابة التالية بتفصيل كيف تقوم بأخذ نسخة إحتياطية وحل المشكال التي من الممكن أن تواجهك :

 

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

<?php
// بيانات الاتصال بقاعدة البيانات
$host = 'localhost';     // خادم mysql
$user = 'root';          // اسم المستخدم
$pass = '';              // كلمة المرور
$dbname = 'database_name';  // اسم قاعدة البيانات

// إسم ملف النسحة الإحتياطية التي تريد إستيراده
$backupFile = 'backup_2025-02-15_12-00-00.sql';

// التأكد من أن الملف موجود
if (file_exists($backupFile)) {
    // إستعلام mysql الخاص بإستيراد النسخة الإحتياطية
    $command = "mysql --host=$host --user=$user --password=$pass $dbname < $backupFile";

    // تنفيذ الأمر
    system($command, $output);

    // التأكد من نجاح الاستعادة
    if ($output === 0) {
        echo "تم استعادة النسخة الاحتياطية بنجاح!";
    } else {
        echo "حدث خطأ أثناء استعادة النسخة الاحتياطية.";
    }
} else {
    echo "الملف غير موجود.";
}
?>

 

  • 0
نشر
بتاريخ On 15‏/2‏/2025 at 21:23 قال محمد عاطف17:
<?php
// بيانات الاتصال بقاعدة البيانات
$host = 'localhost';     // خادم myqsl
$user = 'root';          // اسم المستخدم
$pass = '';              // كلمة المرور
$dbname = 'database_name';  // اسم قاعدة البيانات

// تحديد اسم الملف الذي سيتم حفظ النسخة الاحتياطية فيه
$backupFile = 'backup_' . $dbname . '_' . date('Y-m-d_H-i-s') . '.sql';

// إستعلام mysql الخاص بأخذ نسخة إحتياطية
$command = "mysqldump --host=$host --user=$user --password=$pass $dbname > $backupFile";

// تنفيذ الأمر
system($command, $output);

// التأكد من أن النسخة الاحتياطية تم إنشاؤها
if ($output === 0) {
    echo "تم إنشاء النسخة الاحتياطية بنجاح!";
} else {
    echo "حدث خطأ أثناء إنشاء النسخة الاحتياطية.";
}
?>

<?php ob_start(); session_start(); if (isset($_SESSION['adminname'])) { include "initjr.php"; include $tpl . "header.php"; include $tpl . "withoutpreloader.php"; include $tpl . "sidebar.php"; include $tpl . "navbar.php"; ?> <div class="content"> <div class="container"> <div class="row justify-content-md-center"> <div class="col-lg-12 col-md-6"> <?php $dsn = 'mysql:host=localhost;dbname=rr'; $user = 'tt'; $pass = '1235'; // تحديد اسم الملف الذي سيتم حفظ النسخة الاحتياطية فيه $backupFile = 'backup_' . 'll' . '_' . date('Y-m-d_H-i-s') . '.sql'; // إستعلام mysql الخاص بأخذ نسخة إحتياطية $command = "mysqldump --host=$dsn --user=$user --password=$pass $dsn > $backupFile"; // تنفيذ الأمر system($command, $output); // التأكد من أن النسخة الاحتياطية تم إنشاؤها if ($output === 0) { $themsg = '<div class="alert alert-success text-center" role="alert">تم اخذ نسخه احتياطيه من قاعده البيانات بنجاح</div>'; redirect($themsg, 'seven'); } else { header('location:eror.php'); } } else { header('location:eror.php'); } ?> </div> </div> </div> </div> <?php include $tpl . "footer.php"; ob_end_flush(); ?>

بتاريخ 3 دقائق مضت قال محمد السعيد10:

<?php ob_start(); session_start(); if (isset($_SESSION['adminname'])) { include "initjr.php"; include $tpl . "header.php"; include $tpl . "withoutpreloader.php"; include $tpl . "sidebar.php"; include $tpl . "navbar.php"; ?> <div class="content"> <div class="container"> <div class="row justify-content-md-center"> <div class="col-lg-12 col-md-6"> <?php $dsn = 'mysql:host=localhost;dbname=rr'; $user = 'tt'; $pass = '1235'; // تحديد اسم الملف الذي سيتم حفظ النسخة الاحتياطية فيه $backupFile = 'backup_' . 'll' . '_' . date('Y-m-d_H-i-s') . '.sql'; // إستعلام mysql الخاص بأخذ نسخة إحتياطية $command = "mysqldump --host=$dsn --user=$user --password=$pass $dsn > $backupFile"; // تنفيذ الأمر system($command, $output); // التأكد من أن النسخة الاحتياطية تم إنشاؤها if ($output === 0) { $themsg = '<div class="alert alert-success text-center" role="alert">تم اخذ نسخه احتياطيه من قاعده البيانات بنجاح</div>'; redirect($themsg, 'seven'); } else { header('location:eror.php'); } } else { header('location:eror.php'); } ?> </div> </div> </div> </div> <?php include $tpl . "footer.php"; ob_end_flush(); ?>

استاذ محمد ممكن تشيك علي الكود ده لانه ما بيعمل اي شى لا بينزل شي

  • 0
نشر
بتاريخ On 15‏/2‏/2025 at 21:23 قال محمد عاطف17:

وعليكم السلام ورحمة الله وبركاته.

أولا تحتاج أن تتعلم كيفية إستخدام إستعلام mysqldump في mysql لأخذ نسخة إحتياطية من قاعدة البيانات . حيث هذا هو الإستعلام الذي ستقوم به وكتابته في كود php ويمكنك تعلم المزيد حول كيفية إستيراد وتصدير قاعدة بيانات mysql من خلال المقال التالي :

وإليك الكود التالي لفعل ذلك من خلال php :

<?php
// بيانات الاتصال بقاعدة البيانات
$host = 'localhost';     // خادم myqsl
$user = 'root';          // اسم المستخدم
$pass = '';              // كلمة المرور
$dbname = 'database_name';  // اسم قاعدة البيانات

// تحديد اسم الملف الذي سيتم حفظ النسخة الاحتياطية فيه
$backupFile = 'backup_' . $dbname . '_' . date('Y-m-d_H-i-s') . '.sql';

// إستعلام mysql الخاص بأخذ نسخة إحتياطية
$command = "mysqldump --host=$host --user=$user --password=$pass $dbname > $backupFile";

// تنفيذ الأمر
system($command, $output);

// التأكد من أن النسخة الاحتياطية تم إنشاؤها
if ($output === 0) {
    echo "تم إنشاء النسخة الاحتياطية بنجاح!";
} else {
    echo "حدث خطأ أثناء إنشاء النسخة الاحتياطية.";
}
?>

وإليك الإجابة التالية بتفصيل كيف تقوم بأخذ نسخة إحتياطية وحل المشكال التي من الممكن أن تواجهك :

 

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

<?php
// بيانات الاتصال بقاعدة البيانات
$host = 'localhost';     // خادم mysql
$user = 'root';          // اسم المستخدم
$pass = '';              // كلمة المرور
$dbname = 'database_name';  // اسم قاعدة البيانات

// إسم ملف النسحة الإحتياطية التي تريد إستيراده
$backupFile = 'backup_2025-02-15_12-00-00.sql';

// التأكد من أن الملف موجود
if (file_exists($backupFile)) {
    // إستعلام mysql الخاص بإستيراد النسخة الإحتياطية
    $command = "mysql --host=$host --user=$user --password=$pass $dbname < $backupFile";

    // تنفيذ الأمر
    system($command, $output);

    // التأكد من نجاح الاستعادة
    if ($output === 0) {
        echo "تم استعادة النسخة الاحتياطية بنجاح!";
    } else {
        echo "حدث خطأ أثناء استعادة النسخة الاحتياطية.";
    }
} else {
    echo "الملف غير موجود.";
}
?>

 

رجاء استاذ محمد عاطف تشوف الكود في اخر ساله لانه لا يعمل معي بشكل جيد ولا يعطي اي نتائج ولك كامل الشكر والاحترام

  • 0
نشر
بتاريخ 3 ساعة قال محمد السعيد10:

رجاء استاذ محمد عاطف تشوف الكود في اخر ساله لانه لا يعمل معي بشكل جيد ولا يعطي اي نتائج ولك كامل الشكر والاحترام

يرجى محاولة إستبدال الدالة system بالدالة exec هكذا :

exec($command, $output)

// بدلا من 
system($command, $output)

إذا ظهرت مشكلة لديك يرجى إرفاقها هنا . 

إذا لم تظهر يرجى قراءة الإجابة التي أرفقتها لك سابقا جيدا وإتباع ما تم ذكره فيها فمن الممكن المشكلة لديك في متغيرات البيئة . وهذه هي الإجابة يرجى مراجعتها جيدا :

 

 

  • 0
نشر
بتاريخ 44 دقائق مضت قال محمد عاطف17:

يرجى محاولة إستبدال الدالة system بالدالة exec هكذا :

exec($command, $output)

// بدلا من 
system($command, $output)

إذا ظهرت مشكلة لديك يرجى إرفاقها هنا . 

إذا لم تظهر يرجى قراءة الإجابة التي أرفقتها لك سابقا جيدا وإتباع ما تم ذكره فيها فمن الممكن المشكلة لديك في متغيرات البيئة . وهذه هي الإجابة يرجى مراجعتها جيدا :

 

 

system($command, $output)

هذه الداله اشتغلت ولكن ياتي لي 

هذه الكتابه 

Usage: mysqldump [OPTIONS] database [tables] OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] OR mysqldump [OPTIONS] --all-databases [OPTIONS] For more options, use mysqldump --help

وايضا لا يتم حفظ النسخه الاحتياطيه علي جهاز الكمبيوتر ولكن يتم حفظا في الاستضافه وجد النسخه محفوظه علي الاستضافه مع ملفات الموقع

  • 0
نشر
بتاريخ 4 دقائق مضت قال محمد السعيد10:

system($command, $output)

هذه الداله اشتغلت ولكن ياتي لي 

هذه الكتابه 

Usage: mysqldump [OPTIONS] database [tables] OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] OR mysqldump [OPTIONS] --all-databases [OPTIONS] For more options, use mysqldump --help

وايضا لا يتم حفظ النسخه الاحتياطيه علي جهاز الكمبيوتر ولكن يتم حفظا في الاستضافه وجد النسخه محفوظه علي الاستضافه مع ملفات الموقع

نعم بالفعل سيتم حفظها على الاستضافة بجوار ملف php الذي به هذا الكود .

يمكنك بعد انشاء النسخة اعادة التوجيه الى اسم الملف مع المسار الموجود به وسيتم تحميل الملف على جهازك 

  • 0
نشر
بتاريخ 8 دقائق مضت قال محمد عاطف17:

نعم بالفعل سيتم حفظها على الاستضافة بجوار ملف php الذي به هذا الكود .

يمكنك بعد انشاء النسخة اعادة التوجيه الى اسم الملف مع المسار الموجود به وسيتم تحميل الملف على جهازك 

ممكن تعطيني كود لذلك

  • 0
نشر
بتاريخ 17 ساعة قال محمد السعيد10:

ممكن تعطيني كود لذلك

ستحتاج إلى رأس Content-Disposition لفرض التحميل، وإرسال محتوى الملف مباشرةً إلى المتصفح ثم حذف الملف من الخادم بعد التحميل لو أردت وذلك اختياري.

<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$dbname = 'database_name';

// اسم الملف المؤقت على الخادم
$backupFile = 'backup_' . $dbname . '_' . date('Y-m-d_H-i-s') . '.sql';

$command = "mysqldump -h $host -u $user";
if (!empty($pass)) {
    $command .= " -p$pass";
}
$command .= " $dbname > $backupFile";

$returnValue = system($command, $output, $returnCode);

if ($returnCode === 0 && file_exists($backupFile)) { 
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="' . basename($backupFile) . '"');
    header('Content-Length: ' . filesize($backupFile));

    readfile($backupFile);
    unlink($backupFile);
    exit;
} else {
    echo "<b>حدث خطأ أثناء عمل النسخة الاحتياطية:</b><br><br>";
    echo "<b>قيمة الخروج من الأمر (Return Code):</b> " . $returnCode . "<br><br>"; 
    if (!empty($output)) {
        echo "<b>رسائل الخطأ (إن وجدت):</b><pre>";
        foreach ($output as $line) { 
            echo htmlspecialchars($line) . "<br>"; 
        }
        echo "</pre>";
    } else {
        echo "<b>لم يتم الحصول على أي رسائل خطأ تفصيلية من الأمر.</b><br>";

    }
}
?>

unlink($backupFile)  لحذف الملف المؤقت $backupFile من الخادم، وكما أشرت إجراء اختياري، ومن الأفضل فعل ذلك حيث لا داعي للاحتفاظ بنسخة احتياطية على الخادم بعد تحميلها للحفاظ على أمن قاعدة البيانات.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...