Я пытаюсь использовать PHP exec()
функция для запуска mysqldump
создать резервную копию базы данных с именем projectdata
от Amazon Web Service
, Но я могу только создать пустой файл sql.
Я запускаю файл php с xampp, под Windows 7, где mysqldump находится в C: \ xampp \ mysql \ mysqldump
exec('C:\xampp\mysql\bin\mysqldump --user=user --password=password --host=cannotTellyou.amazonaws.com:3306 projectdata > backup.sql');
Что вы должны сделать, это: сделать ssh вход на ваш компьютер AWS. Запустите mysqldump в командной строке и начните отладку оттуда.
ssh <your remote AWS using your private_key>
затем беги
mysqldump -u <username> -p<password> yourDB | gzip > backupfilename.sql.tar.gz
используйте gzip, если вы хотите заархивировать ваш файл резервной копии, иначе это не нужно.
Тогда обратитесь к этому сообщению:
как mysqldump удаленного БД с локальной машины
Я бы попытался явно указать имя файла вместо перенаправления вывода. Как это:
exec('C:\xampp\mysql\mysqldump --user=user --password=password --host=cannotTellyou.amazonaws.com:3306 projectdata -r backup.sql');
-r
Опция должна использоваться также потому, что:
Прямой вывод в данный файл. Эта опция должна использоваться в MSDOS, потому что она предотвращает преобразование новой строки ‘\ n’ в ‘\ r \ n’ (возврат каретки + перевод строки).
Работает после удаления номера порта
C:\xampp\mysql\bin\mysqldump --user=user --password=password --host=cannotTellyou.amazonaws.com projectdata > backup.sql