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. タプルはデータベーステーブルに順番に挿入されませんか?

    2. システムユーザーpostgresにログインできません

    3. 階層的なcmsサイトを実装する方法は?

    4. MySQLとPDO:PDO ::lastInsertIdは理論的に失敗する可能性がありますか?