相关疑难解决方法(0)

通用远程数据备份和下载 - 包括InnoDb支持

我想要一个基于PHP的解决方案来备份远程服务器的数据库(只有数据而不是代码)并下载文件.我知道基于Shell的解决方案更适合做这样的事情(在本地系统上运行shell脚本并通过SSH连接到远程系统)但是要求有一个基于PHP的解决方案,其中知道URL和拥有数据库凭据就足够了非技术人员进行备份.PHP脚本可以上载到远程服务器并执行.

以下是我想要的功能: -

  • 至少应该支持InnoDb引擎 - 应该导出外键约束.如果它支持所有其他引擎没有坏处.
  • 应该在所有服务器上工作,存在最大可能的限制(我知道一些限制,如safe_mode启用exec(),system()功能禁用等).我想要一个非常通用的解决方案,保证可以在任何地方工作.

  • 进程应进行密码验证(请求数据库凭据).

现在,我正在分解事物并从基础开始.以下是我对目前的事情的假设以及一些问题: -

  1. 我不知道,如果系统的功能,如exec,system等可以共享主机服务器或不能完全禁止.如果它们被禁用以便它们不能被覆盖,那么这里mysqldump给出的基础解决方案将无法普遍适用.问题 -但是,如果系统功能只能在内部存在的文件上执行,那么解决方案是否可以安全运行?
    safe_modesafe_mode_exec_dir

  2. 我问了一个关于使用PHP执行此操作的安全风险的问题,并且了解在网站空间中永远不应该创建备份文件(我假设,如果是mysqldump基于解决方案,则需要在下载之前首先创建备份文件).因此,解决方案不应该在那里创建备份文件(如果在其他位置创建,则没有问题).
    问题 -但是,共享主机提供商会允许这样做吗?

  3. 我检查了各种通用用户贡献的PHP类,如phpmysqldump等,并没有找到mysqldump使用系统命令进行备份的基于解决方案的用法.他们做类似的事情SHOW CREATE TABLE来获取所有表创建,数据插入查询,然后下载这些东西而不实际将其保存为文件(因此没有安全风险).
    问题 -我是否正确地得出结论,他们在没有mysqldump像第一点的解决方案中给出的那样简单的情况下完成所有这些事情,因为这不是一个通用且安全的解决方案?
    问题 -另外,我读到没有任何好的方法效果很好.我个人只使用这个phpmysqldump,当我尝试使用创建的备份恢复数据库时,它会给我mysql错误.转储文件中的查询与PhpMyAdmin的导出模块创建的查询略有不同.我还检查了一些其他免费用户贡献的PHP类.看起来它们中的大多数都不支持InnoDb支持,因此如果数据库中存在关键约束,则导出中不存在.
    问题 - PhpMyAdmin本身的导出功能,如果单独出现,可能是我的解决方案,我想.有没有人知道像这样的稳定​​库吗?

php shared-hosting database-backups

11
推荐指数
1
解决办法
986
查看次数

标签 统计

database-backups ×1

php ×1

shared-hosting ×1