サーバー上でMySQLテーブルのダンプを作成しようとしていますが、Zendでこれを実行しようとしています。テーブルへのすべての接続にmodel/mapper / dbtable構造があり、マッパーに次のコードを追加しています。
public function dumpTable()
{
$db = $this->getDbTable()->getAdapter();
$name = $this->getDbTable()->info('name');
$backupFile = APPLICATION_PATH .
'/backup/' . date('U') .
'_' . $name . '.sql';
$query = "SELECT * INTO OUTFILE '$backupFile' FROM $name";
$db->query( $query );
}
これは桃色で動作するはずだと思いましたが、
Message: Mysqli prepare error: Access denied for user 'someUser'@'localhost' (using password: YES)
これが結果として生じるものです。
someUserのユーザー権限を確認したところ、彼は問題のデータベースとテーブルに対するすべての権限を持っています。私はこの辺りやネット全般を見ていて、通常はユーザーの「すべて」の権限をオンにすることが解決策のようですが、私の場合はそうではありません(疲れた目で今何かを見落としている場合を除く)+実稼働サーバーで「すべて」をオンにしたくない)。
私はここで何が間違っているのですか?または、Zendでこれを行うためのよりエレガントな方法を知っている人はいますか?