2010-11-27 2 views
0

Я попытался выполнить резервное копирование своих баз данных MySQL с помощью PHP, но когда я устанавливаю путь для резервной копии, я получаю другой путь при запуске скрипта.PHP-скрипт для резервного копирования базы данных

это мой сценарий:

$baseDir = 'backup/'; 
$db; 
$table; 
$server = $_SERVER['HTTP_HOST'] . substr($_SERVER['SCRIPT_NAME'],0,strrpos($_SERVER['SCRIPT_NAME'],'/')); 

это внутри функции резервного копирования:

global $baseDir; 
global $db; 
global $server; 
$backupFile = $server . "/$baseDir$db/$tab.sql"; 
$query = mysql_query("SELECT * INTO OUTFILE '$backupFile' FROM $tab"); 
if(!$query) 
    echo "\t" .mysql_error() .PHP_EOL; 
else 
    echo " backuped." . PHP_EOL; 

путь, который я получаю: c:\wamp\bin\mysql\mysql5.1.36\data\localhost\db\backup\contact_keeper\accounts.sql с erroCode: 2 (немогу записи/создать).

+1

Лучшим решением является использование `mysqldump` - http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html – ajreal 2010-11-27 15:16:34

ответ

2

SELECT ... INTO OUTFILE ограничен только СОЗДАНИЕ нового файла. Он не может перезаписывать существующий файл в качестве меры безопасности. Кроме того, убедитесь, что учетная запись, в которой работает MySQL в Windows, имеет права на запись в этом каталоге ...\backup\contact_keeper. Он может иметь только чтение/выполнение.

 Смежные вопросы

  • Нет связанных вопросов^_^