为了账号安全,请及时绑定邮箱和手机立即绑定

使用.php文件生成MySQL转储

使用.php文件生成MySQL转储

互换的青春 2019-08-12 09:58:47
使用.php文件生成MySQL转储这是我的信息:我正在使用基于Linux的系统使用MySQL和PHP5。我需要能够mysqldump在.php文件中生成一个,然后将该转储存储在我指定的位置的服务器上的文件中。因为我是一个PHP nooblet,我希望有人给我一些帮助,指导或代码,这将做我需要的。这必须从Internet远程运行。
查看完整描述

3 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

您可以使用该exec()函数执行外部命令。

注意:在shell_exec()和之间exec(),我会选择第二个,它不会将输出返回给PHP脚本 - 不需要PHP脚本将整个SQL转储作为字符串:您只需要将其写入文件,这可以通过命令本身来完成。


该外部命令将:

  • mysqldump用正确的参数打电话给

  • 并将输出重定向到文件。

例如 :

mysqldump --user=... --password=... --host=... DB_NAME > /path/to/output/file.sql


这意味着您的PHP代码如下所示:

exec('mysqldump --user=... --password=... --host=... DB_NAME > /path/to/output/file.sql');


当然,由您决定使用正确的连接信息,替换为...那些。


查看完整回答
反对 回复 2019-08-12
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

如果要创建备份以通过浏览器下载,也可以不使用文件来执行此操作。


php函数passthru()将直接将mysqldump的输出重定向到浏览器。在这个例子中,它也将被压缩。


亲:您不必处理临时文件。


Con:无法在Windows上运行。对巨大的数据集可能有限制。


<?php


$DBUSER="user";

$DBPASSWD="password";

$DATABASE="user_db";


$filename = "backup-" . date("d-m-Y") . ".sql.gz";

$mime = "application/x-gzip";


header( "Content-Type: " . $mime );

header( 'Content-Disposition: attachment; filename="' . $filename . '"' );


$cmd = "mysqldump -u $DBUSER --password=$DBPASSWD $DATABASE | gzip --best";   


passthru( $cmd );


exit(0);

?>


查看完整回答
反对 回复 2019-08-12
  • 3 回答
  • 0 关注
  • 623 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信