سؤال

أحاول كتابة نص PHP للنسخ الاحتياطي قاعدة بيانات MySQL:

   if ( $db_resource = mysql_connect($db_server, $db_username, $db_password, $db_newlink) )
   {
      if ( mysql_select_db( $db_name, $db_resource ) )
      {
         $backupFile = $db_name."_".date( "Y-m-d-H-i-s" ).".gz";
         $command = "mysqldump --opt -h ".$db_server." -u ".$db_username." -p ".$db_password." ".$db_name." | gzip > ".$db_save_dir."/".$backupFile;
         system( $command );
      }
   }

   mysql_close( $db_resource );

عندما أجريها من محطة القذيفة، أحصل على هذا:

ستينغراي] $ php / [المسار المطلق] /db_backup.php.

أدخل كلمة المرور: [أنا إدخال كلمة المرور]

mysqldump: حصلت على خطأ: 1044: تم رفض الوصول للمستخدم 'اسم االمستخدم] '@' 208.113.128.0/255.255.128.0 'إلى قاعدة البيانات' [كلمه السر] "عند اختيار قاعدة البيانات

حسنا، الآن ما لا أفهمه حقا هو سبب استدعاء قاعدة البيانات ككلمة مرور. إذا قمت بإشارة متصفح الويب الخاص بي في الملف، فهذا يعمل على ما يرام. هل يعرف أحد ما يجب أن أفعله؟ أنا شخصيا، أنا حقا لا يهمني إذا كان PHP، Python، CGI، وما إلى ذلك، فقط طالما كان يمكن تشغيله على خادم Apache.

شكرا.

هل كانت مفيدة؟

المحلول

بناء الجملة لمعلومات كلمة المرور مختلفة. إزالة المساحة بعد العلم -p وإعطائها لقطة أخرى.

نصائح أخرى

حاول استخدام أسماء الخيارات الكاملة؛ كان لدي مشكلة مماثلة ولكن لا وقت لمعالجة الجذر الحقيقي للفشل؛ لكن هذا يعمل ويعمل من أجلي:

/usr/bin/mysqldump \
--user=username \
--password=password \
dbname > mysqldump.sql

1: لا توجد مساحة بين -p وكلمة المرور على سبيل المثال: -p ". $ db_password."

2: منح جميع (إذا كنت تريد) امتيازات لمستخدم معين لقاعدة البيانات هذه.

3: إعطاء الملف الصحيح إذن لتنفيذ الأمر.

إذا كنت مجرد دعم الأشياء وأود أن أوصي بشدة باستخدام هذا سهل جدا، قابل للتكوين للغاية، SITHINK SURCE SCRIPT. وبعد إنه رائع وأعتقد أنك ستعجبك إذا كان هذا كل ما بعده.

إذا كانت هناك حاجة ماسة حقا ليتم تشغيلها من خلال Apache، فيمكنك استخدام Backticks لتشغيل البرنامج النصي عن بعد، ثم تحصل على دورات نسخ احتياطي واستعنال أسبوعي / شهري، والضغط وتسجيل الدخول مجانا.

أقترح عليك استخدام sqlbuddy., ، حل مشكلتي مثل الخاص بك.

تابع برامج نصية مخصصة فقط إذا كنت ترغب في استخدام Cron أو برنامج نصي تلقائي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top