sql >> Database >  >> RDS >> Mysql

Mysqldump uitvoeren vanuit een PHP-script werkt niet, maar werkt op SSH

Een weloverwogen gok

Als ik een weloverwogen gok kan doen, is dat omdat de gebruiker die het php-script uitvoert (dwz de gebruiker de httpd wordt uitgevoerd als) geen toestemming heeft om naar /var/www/vhosts/mydomain.com/httpdocs/tools/ .

Hoewel de gebruiker die u gebruikt om de opdracht uit te voeren dat wel heeft.

STDERR en STDOUT

Om te zien of er iets is afgedrukt naar STDERR die relevant is voor het probleem, gebruik dan het onderstaande fragment!

$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!");
}

Controleer de logbestanden!

Heb je de error_log . gecontroleerd gekoppeld aan uw httpd ?




  1. Hoe kan ik realtime van een gebeurtenis in de database invoegen met behulp van php mysqli?

  2. Query verwijderen werkt niet van Java-toepassing

  3. pdo afbeelding direct in database invoegen - altijd BLOB invoegen - 0B

  4. Hoe de gegevens in een Oracle-tabel te herstellen?