Я пытаюсь сделать дамп таблицы MySQL на сервере, и я пытаюсь сделать это в Zend. У меня есть модель/сопоставитель/dbtable структуры для всех моих подключений к моим таблицам, и я, добавив следующий код к картографам:Доступ запрещен при выборе в outfile с помощью Zend
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?
Эй Пекка, да, SELECT, INSERT, UPDATE и т.д. работает просто отлично, и, по словам PHPMyAdmin, someUser имеет "ВСЕ ПРИВИЛЕГИИ" – Peter
@Peter странно. Сделано 'FLUSH PRIVILEGES' и/или перезапустили сервер? –
@Peter вы можете попробовать создать второго пользователя со всеми привилегиями и попробовать его с этим, просто чтобы исключить дубликаты записей и т. Д.? –