Mặc dù bạn có thể thực hiện các lệnh sao lưu từ PHP, nhưng chúng không thực sự liên quan gì đến PHP. Đó là tất cả về MySQL.
Tôi khuyên bạn nên sử dụng tiện ích mysqldump để sao lưu cơ sở dữ liệu của bạn. Bạn có thể tìm thấy tài liệu tại đây: http://dev.mysql. com / doc / refman / 5.1 / en / mysqldump.html .
Cách sử dụng cơ bản của mysqldump là
mysqldump -u user_name -p name-of-database >file_to_write_to.sql
Sau đó, bạn có thể khôi phục bản sao lưu bằng lệnh như
mysql -u user_name -p <file_to_read_from.sql
Bạn có quyền truy cập vào cron không? Tôi khuyên bạn nên tạo một tập lệnh PHP chạy mysqldump như một công việc cron. Đó sẽ là một cái gì đó giống như
<?php
$filename='database_backup_'.date('G_a_m_d_y').'.sql';
$result=exec('mysqldump database_name --password=your_pass --user=root --single-transaction >/var/backups/'.$filename,$output);
if(empty($output)){/* no output is good */}
else {/* we have something to log the output here*/}
Nếu không có mysqldump, bài viết mô tả một phương pháp khác, sử dụng SELECT INTO OUTFILE
và LOAD DATA INFILE
các lệnh. Kết nối duy nhất với PHP là bạn đang sử dụng PHP để kết nối với cơ sở dữ liệu và thực thi các lệnh SQL. Bạn cũng có thể thực hiện việc này từ chương trình MySQL dòng lệnh, trình giám sát MySQL.
Nó khá đơn giản, bạn đang viết một tệp SQL bằng một lệnh và tải / thực thi nó khi cần khôi phục.
Bạn có thể tìm tài liệu để chọn trong outfile tại đây (chỉ cần tìm kiếm trang cho outfile). LOAD DATA INFILE về cơ bản là mặt trái của điều này. Xem tại đây cho tài liệu.