私のシステム: Ubuntu 11.10、LAMP スタック。
問題:
ターミナルで次を実行すると、正しくバックアップされます。
mysqldump -u root dbBugTracker > BAK/dbw.sql
しかし、次のようにphpコードに含めましたが、機能しません。
exec('/usr/bin/mysqldump -u root dbTracker > BAK/dbT.sql');
チップ:
- exec に 2 番目のパラメーターを入れようとしましたが、Array という単語以外は何も表示されません。印刷しましたが、何もありません。
- ファイル dbw.sql は、実際には exec 関数の結果として作成されますが、0 バイトです。
- フルパスを使用して mysql を使用せずに試してみましたが、同じ結果が得られました。つまり、0 バイトです。
- フォルダーBAKは私のプロジェクト フォルダー内にあり、777 のアクセス許可も与えました。
- さまざまなファイル名とデータベースを試してみましたが、結果は同じです。
これに関するご意見をお待ちしております。感謝!
詳細情報: exec 行に2>&1を追加したところ、ファイルにはテキストが含まれていますが、DB ダンプは含まれていません。これはエラーであり、これを処理する方法がわかりません:(エラーは次のとおりです
mysqldump: エラーが発生しました: 1045: 接続しようとすると、ユーザー 'root'@'localhost' のアクセスが拒否されました (パスワードを使用: NO) これが出力ファイル (dbw.sql) の現在の内容です。繰り返しますが、ターミナルからダンプを実行すると正常に動作します。