2013-03-05 4 views
1

В phpMyAdmin существует возможность экспортировать всю таблицу (или базу данных) в файл .SQL.Экспорт базы данных SQL

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

+2

Я думаю, что это делается путем вызова [ 'mysqldump'] (http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html) с нужными параметрами. – ConcurrentHashMap

+0

http://dbperf.wordpress.com/2010/06/11/automate-mysql-dumps-using-linux-cron-job/ Помогите вам – Meherzad

ответ

1

использование туздЫшпр

mysqldump -h hostname -u user -pPassword dbname >/path/to/file 

хозяин является необязательным, если хост локальный. в зависимости от некоторых настроек пользователь и пароль могут быть необязательными. Обратите внимание, вы можете добавить название даты

mysqldump -h hostname -u root mydb > /path/to/backup/$(date +%a) 
2

Да, туздЫшпр: http://linuxcommand.org/man_pages/mysqldump1.html

Вам необходимо иметь доступ к серверу, чтобы использовать его, хотя. Кроме того, если вы чувствуете себя авантюрно и хотите поддерживать согласованные резервные копии, найдите информацию о настройках ведущего/ведомого.

0

Вы можете создать сценарий оболочки и вызвать этот скрипт с помощью задания cron. Смотрите эту Работа Example

3

Вы можете запускать эти команды с PHP, скопируйте следующий фрагмент кода в файл и выполнить его с хронами.

<?php 

//Backup: 

//ENTER THE RELEVANT INFO BELOW 
$mysqlDatabaseName ='databasename'; 
$mysqlUserName ='username'; 
$mysqlPassword ='password'; 
$mysqlHostName ='localhost'; 
//$mysqlExportPath ='database.sql'; 

$mysqlImportFilename ='myownsit_obsolcms.sql'; 

//DONT EDIT BELOW THIS LINE 
//Export the database and output the status to the page 
$command='mysql -h' .$mysqlHostName .' -u' .$mysqlUserName .' -p' .$mysqlPassword .' ' .$mysqlDatabaseName .' < ' .$mysqlImportFilename; 
exec($command,$output=array(),$worked); 
switch($worked){ 
    case 0: 
     echo 'Import file <b>' .$mysqlImportFilename .'</b> successfully imported to database <b>' .$mysqlDatabaseName .'</b>'; 
     break; 
    case 1: 
     echo 'There was an error during import. Please make sure the import file is saved in the same folder as this script and check your values:<br/><br/><table><tr><td>MySQL Database Name:</td><td><b>' .$mysqlDatabaseName .'</b></td></tr><tr><td>MySQL User Name:</td><td><b>' .$mysqlUserName .'</b></td></tr><tr><td>MySQL Password:</td><td><b>NOTSHOWN</b></td></tr><tr><td>MySQL Host Name:</td><td><b>' .$mysqlHostName .'</b></td></tr><tr><td>MySQL Import Filename:</td><td><b>' .$mysqlImportFilename .'</b></td></tr></table>'; 
     break; 
} 



//Restore: 
$mysqlExportPath ='path_to_file/database.sql'; 

//DONT EDIT BELOW THIS LINE 
//Export the database and output the status to the page 
$command='mysqldump --opt -h' .$mysqlHostName .' -u' .$mysqlUserName .' -p' .$mysqlPassword .' ' .$mysqlDatabaseName .' admin contents categires google_map cms_labels news pages page_contents partners photos plugins products social testimonials themes users youtube> ~/' .$mysqlExportPath; 
//$command = "$ mysqldump -u $mysqlUserName -p $mysqlPassword $mysqlDatabaseName > myownsit_obsolcms.sql"; 
exec($command,$output=array(),$worked); 
switch($worked){ 
    case 0: 
     //echo 'Database <b>' .$mysqlDatabaseName .'</b> successfully exported to <b>~/' .$mysqlExportPath .'</b>'; 
     break; 
    case 1: 
     echo 'There was a warning during the export of <b>' .$mysqlDatabaseName .'</b> to <b>~/' .$mysqlExportPath .'</b>'; 
     break; 
    case 2: 
     echo 'There was an error during export. Please check your values:<br/><br/><table><tr><td>MySQL Database Name:</td><td><b>' .$mysqlDatabaseName .'</b></td></tr><tr><td>MySQL User Name:</td><td><b>' .$mysqlUserName .'</b></td></tr><tr><td>MySQL Password:</td><td><b>NOTSHOWN</b></td></tr><tr><td>MySQL Host Name:</td><td><b>' .$mysqlHostName .'</b></td></tr></table>'; 
     break; 
} 
?> 
Смежные вопросы