PHP-скрипт для экспорта одной таблицы в файл SQL

Я хочу экспортировать одну таблицу в файл SQL для резервного копирования каждый день с помощью cron-job.
Я искал несколько сценариев, но большинство из них были не такими удобными для пользователя.

Я видел это: http://help.1and1.com/hosting-c37630/linux-c85098/php-c37728/importing-and-exporting-mysql-databases-using-php-a595887.html

Но он экспортирует всю БД (которая весит около 10 ГБ), мне нужно экспортировать одну таблицу размером 16 МБ.

Предпочтительный метод заключается в том, чтобы он выглядел как обычный файл sql (например, те, которые экспортирует Phpmyadmin), примерно так:

 CREATE TABLE IF NOT EXISTS `parts` (
  `flag` char(1) NOT NULL DEFAULT '',
  `comp` int(10) NOT NULL DEFAULT '0',
  `name` varchar(255) NOT NULL DEFAULT '',
  `rname` varchar(255) NOT NULL DEFAULT '',
  `hname` varchar(255) NOT NULL DEFAULT '',

person Nir Tzezana    schedule 01.01.2014    source источник


Ответы (2)


Вы можете просто изменить этот скрипт и добавить параметры для имени таблицы

Например изменить строку

$command='mysqldump --opt -h' .$mysqlHostName .' -u' .$mysqlUserName .' -p' .$mysqlPassword .' ' .$mysqlDatabaseName .' > ~/' .$mysqlExportPath;

to

$command='mysqldump --opt -h' .$mysqlHostName .' -u' .$mysqlUserName .' -p' .$mysqlPassword .' ' .$mysqlDatabaseName .' parts > ~/' .$mysqlExportPath;

Где parts — имя вашей таблицы

person newman    schedule 01.01.2014

http://www.tutorialspoint.com/mysql/mysql-database-export.htm

Вы можете либо создать bash-скрипт, либо использовать php-функцию exec().

<?php

exec('mysqldump -u XXXX -p XXXX [table_name] > [output file]')
person Chris Barrett    schedule 01.01.2014
comment
Я предполагаю, что u для пользователя, а p для пароля, но разве не должно быть места для вставки самой БД? - person Nir Tzezana; 01.01.2014
comment
Да -u [имя_пользователя] -p [пароль] и может добавить имя_таблицы к БД, например, database_here.table_name_here - person Chris Barrett; 01.01.2014