Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否可以通过执行查询导出MySQL数据库?_Php_Mysql_Sql - Fatal编程技术网

Php 是否可以通过执行查询导出MySQL数据库?

Php 是否可以通过执行查询导出MySQL数据库?,php,mysql,sql,Php,Mysql,Sql,为了备份数据,我需要为我的客户机添加一个选项,因此我不知道是否有查询可以导出数据库,而不是从phpMyAdmin手动执行。我使用php作为服务器端语言 提前感谢。尝试这样做,并替换[用户]、[密码]和[数据库名称] mysqldump -u [user] -p [password] [data-base-name] > myDBDumpFileName.sql 请阅读此处了解更多信息 您还可以从数据库中转储单个表,如下所示: mysqldump -u user -p password

为了备份数据,我需要为我的客户机添加一个选项,因此我不知道是否有查询可以导出数据库,而不是从phpMyAdmin手动执行。我使用php作为服务器端语言


提前感谢。

尝试这样做,并替换
[用户]
[密码]
[数据库名称]

mysqldump -u [user] -p [password] [data-base-name] > myDBDumpFileName.sql
请阅读此处了解更多信息

您还可以从数据库中转储单个表,如下所示:

 mysqldump -u user -p password data-base table1 table2 table5 > myDBDumpFileName.sql

然后,为了让它自动运行,我建议设置一个cronjob,然后调用一个shell脚本,但是您也可以设置一个调用PHP脚本的cronjob

尝试这样做,并替换
[用户]
[密码]
[数据库名称]

mysqldump -u [user] -p [password] [data-base-name] > myDBDumpFileName.sql
请阅读此处了解更多信息

您还可以从数据库中转储单个表,如下所示:

 mysqldump -u user -p password data-base table1 table2 table5 > myDBDumpFileName.sql

然后,为了让它自动运行,我建议设置一个cronjob,然后调用一个shell脚本,但是您也可以设置一个调用PHP脚本的cronjob

我想这就是你需要的

<?php
   $dbhost = 'enter_host_adress';
   $dbuser = 'DB_user_name';
   $dbpass = 'password';

   $backup_file = $dbname . date("Y-m-d-H-i-s") . '.gz';
   $command = "mysqldump --opt -h $dbhost -u $dbuser -p $dbpass ". "test_db | gzip > $backup_file";

   system($command);
?>

我想这就是你需要的

<?php
   $dbhost = 'enter_host_adress';
   $dbuser = 'DB_user_name';
   $dbpass = 'password';

   $backup_file = $dbname . date("Y-m-d-H-i-s") . '.gz';
   $command = "mysqldump --opt -h $dbhost -u $dbuser -p $dbpass ". "test_db | gzip > $backup_file";

   system($command);
?>


看一看我认为问题已经解决了可能的重复看一看我认为问题已经解决了可能的重复我建议使用这样的工具@C4pt4inC4nn4bis我不建议使用这样的工具,因为您只需要mysqldump和cronjob这两样东西。在我看来,没有理由通过挖掘代码来完成如此简单的任务。我明白你的意思,知道如何通过自己编写所有内容来实现这一点是很好的。但另一方面,您只需要包含一个文件并复制粘贴示例。与压缩和错误处理一起提供。所以这取决于人们愿意为这个问题投入多少时间。我个人在包含一些外部库或脚本以快速转移到其他任务方面没有问题。这可以工作,但下载文件的大小为零KB,因此我尝试在cmd提示符下运行该命令,我发现它需要密码,当我写入密码并按enter键时,数据库是否成功导出?你知道怎么处理吗?@AlyAlAmeen很显然,你需要在正确的地方使用正确的密码。假设创建转储的脚本已经在服务器上,可能只需要DB密码。你需要一步一步地尝试。创建命令,直到它工作。然后把它放在一个文件中,使它成为一个脚本,调用它直到它工作。然后设置cronjob,直到它工作。然后可能通过SSH获取文件,编写命令直到它工作。我建议使用@C4pt4inC4nn4bis这样的工具。我不建议使用这样的工具,因为您所需要的只是mysqldump和cronjob这两样东西。在我看来,没有理由通过挖掘代码来完成如此简单的任务。我明白你的意思,知道如何通过自己编写所有内容来实现这一点是很好的。但另一方面,您只需要包含一个文件并复制粘贴示例。与压缩和错误处理一起提供。所以这取决于人们愿意为这个问题投入多少时间。我个人在包含一些外部库或脚本以快速转移到其他任务方面没有问题。这可以工作,但下载文件的大小为零KB,因此我尝试在cmd提示符下运行该命令,我发现它需要密码,当我写入密码并按enter键时,数据库是否成功导出?你知道怎么处理吗?@AlyAlAmeen很显然,你需要在正确的地方使用正确的密码。假设创建转储的脚本已经在服务器上,可能只需要DB密码。你需要一步一步地尝试。创建命令,直到它工作。然后把它放在一个文件中,使它成为一个脚本,调用它直到它工作。然后设置cronjob,直到它工作。然后可能通过SSH获取文件,编写命令,直到它工作。这可以工作,但下载文件的大小为零KB,因此我尝试在cmd提示符下运行该命令,我发现它需要密码,当我编写密码并按enter键时,数据库导出成功吗?你知道如何处理这个问题吗?这可以工作,但下载的文件是零KB,所以我尝试在cmd提示符下运行该命令,我发现它需要密码,当我写入密码并按enter键时,数据库成功导出了吗?你知道怎么处理吗?