如何使用 php 从远程计算机转储和下载 mysql?

How to dump and download mysql from remote machine with php?

登录vps机器时转储mysql数据库很简单。
1.To 使用

从我的本地机器登录 vps 机器
ssh   root@vps_ip

2.To 将名为 wpdatabase 的 mysql 数据库转储到远程计算机中的 /home/test。sql。

mysqldump  -u root -p   wpdatabase > /home/test.sql

现在,我可以使用 php 从远程计算机转储和下载 mysql,使用 php 编写登录语句,使用 [= 下载转储的 mysql 数据库34=],所有过程用 php ?

完成

想想 Adrian Cid Almaguer,我想 运行 exec("ssh root@vps_ip");但是如何在exec命令中写密码?

man ssh  

   ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-e escape_char] [-F configfile]
         [-I pkcs11] [-i identity_file] [-L [bind_address:]port:host:hostport] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option]
         [-p port] [-R [bind_address:]port:host:hostport] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] [user@]hostname
         [command]

无法在 ssh 中写入密码?

要使用 ssh 连接:

首先从您的控制台安装 sshpass

$ sudo apt-get install sshpass

那你就可以使用这个命令了

$ sshpass -p your_password ssh user@hostname

与php是

<?php

 exec("sshpass -p your_password ssh user@hostname");

?>

您可以转储您的数据库:

<?php

 exec("mysqldump -uroot -padmin wpdatabase > /home/test.sql");

?>

Note: root is he user and admin is the password.

参考:

https://serverfault.com/q/241588/283624

您可以使用 Bash 中的两个命令执行此操作:

1) 使用 SSH,生成 MySQL 转储(-p 和数据库密码之间缺少的 space 是故意的):

$ ssh user@mysqlhost -x "mysqldump -u dbuser -pdbpass db_name > ~/file.sql"

2) 使用 SCP,将文件传输到本地主目录:

$ scp user@mysql_host:~/file.sql ~/

请查看此博客 post,了解如何在您的服务器上设置 SSH 密钥,这样您就不必输入密码:https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys--2

 <?php
    $vps_ip= vps_ip;
    $connection = ssh2_connect($vps_ip, 22);
    ssh2_auth_password($connection, $root, $passwd);
    $cmd1="mysqldump -u root -pxyzzy wpdatabase > /home/back.sql";
    ssh2_scp_recv($connection, '/home/back.sql', '/home/back/myback.sql');
?>

~

这对我来说是更好的工作方式。