Ben uzak bir sunucu, veritabanı yedekleme (yalnızca veri ve kod değil) için bir PHP tabanlı bir çözüm istiyor ve dosyayı indirin. Shell tabanlı çözümler gibi şeyler (yerel sistemde bir kabuk komut dosyası çalıştıran ve uzaktan sisteme SSH üzerinden bağlantı) yapmak için daha iyi olduğunu biliyorum ama bir URL bilerek ve veritabanı kimlik bilgileri olması için yeterli olduğu bir PHP tabanlı çözüm için bir gerekliliktir yedeklerini almak için olmayan bir teknik okul. PHP komut dosyası uzak sunucuya yüklenir ve idam edilebilir.
features istiyorum şunlardır: -
- Yabancı anahtar kısıtlamaları ihraç edilmelidir - en azından InnoDB motoru için destek olmalıdır. Diğer bütün motorları destekler ise hiçbir zararı.
I
safe_mode
exec()
, etkin gibi birkaç kısıtlamalar hakkında bilmek kısıtlamaların mümkün olan azami miktar (varlığında, tüm sunucularda çalışması gerektiğini,system()
işlevleri devre dışı vb.) Ben her yerde çalışmak için garantili bir çok genel amaçlı çözüm istiyoruz.Proses (veritabanı kimlik sorar) doğrulanmış parola olmalıdır.
Şimdi, aşağı şeyler kırma ve çok temel başlangıç duyuyorum. Aşağıdaki şimdiye kadar şeyler benim varsayımlar ve bazı questions: -
I am not sure if system functions like
exec
,system
etc. can be completely disabled in shared hosting servers or not. If they are disabled such that they cannot be overridden, then themysqldump
based solution given here will not work universally.
Question - If however onlysafe_mode
is on such that system functions can execute on files present insidesafe_mode_exec_dir
, will the solution work securely?I asked a question regarding security risks of doing this using PHP and understood that the backup file should never be created (I assume, in case of a
mysqldump
based solution, backup file needs to be created first before downloading) in the webspace. So, the solution should not need the backup files to be created there (no problem if creates in other locations).
Question - But, will shared hosting providers allow this?I checked out various general-purpose user contributed PHP classes like phpmysqldump etc. and did not find the usage of
mysqldump
based solution using system commands there to take backup. They do things likeSHOW CREATE TABLE
etc. to get all the table creation, data insertion queries and then download those things without actually saving it as a file (so no security risk).
Question - Am I correct to conclude that they do all these things without doing a simplemysqldump
as given in the solution in the first point because this cannot be a general purpose and secure solution?
Question - Also, I read that there aren't any good ones which work well. I personally used only this phpmysqldump and it gives me mysql errors when I try to restore a database with the backup created. The queries in the dump file also look somewhat different from those created by PhpMyAdmin's export module. I also checked a few other free user contributed PHP classes. It looks like most of them do not support InnoDb support and so foriegn key constraints, if present in the database are not present in the export.
Question - The export functionality of PhpMyAdmin itself, if present separately could be the solution for me, I guess. Does anybody know of any stable library like this one?