Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

PHP स्क्रिप्ट से mysqldump चलाना काम नहीं करता है लेकिन SSH पर काम करता है

एक शिक्षित अनुमान

अगर मैं एक शिक्षित अनुमान लगा सकता हूं तो ऐसा इसलिए है क्योंकि उपयोगकर्ता जो php-script चलाता है (यानी उपयोगकर्ता httpd के रूप में चलाया जाता है) को लिखने की अनुमति नहीं है /var/www/vhosts/mydomain.com/httpdocs/tools/

यद्यपि आप जिस उपयोगकर्ता को कमांड निष्पादित करने के लिए उपयोग कर रहे हैं, उसके पास है।

STDERR और STDOUT

यह देखने के लिए कि क्या STDERR पर कुछ छपा हुआ है? जो समस्या के लिए प्रासंगिक है, नीचे दिए गए स्निपेट का उपयोग करें!

$tubes = array(
  0 => array("pipe", "r"),
  // print contents on STDOUT to file
  1 => array("file", "/var/www/vhosts/mydomain.com/httpdocs/tools/dbbackup-2011-12-17.sql", "w"),
  2 => array("pipe", "w")
);

$p_handle = proc_open (
  "/usr/bin/mysqldump --opt --host=localhost --user=\"myuser\" --password=\"mypass\" db_name",
  $tubes, $pipes
);

if (is_resource ($p_handle)) {
    fclose ($pipes[0]);

    $stderr_data = stream_get_contents ($pipes[2]); fclose($pipes[2]);

    $proc_ret    = proc_close ($p_handle);

    echo "--------- STDERR:\n$stderr_data\n";
    echo "------------ RET: $proc_ret\n";
} else {
  die ("Unable to execute external resource, aborting!");
}

लॉग फ़ाइलें जांचें!

क्या आपने error_log . की जांच की है? आपके httpd . से संबद्ध ?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CreateSQLQuery काम करता है लेकिन QueryOver NHibernate के साथ नहीं है

  2. php/mysql में अरबी भाषा प्रकट होती है ???? html में प्रश्न चिह्न

  3. PHP के साथ बैच सम्मिलित करता है

  4. php डेटाटाइम को mysql डेटाबेस में स्टोर करें

  5. मैं अपने नोड और उसके पूर्वजों के सभी भाई-बहनों को एक पदानुक्रमित श्रेणी के पेड़ में कैसे ढूंढ सकता हूं?