如何使用 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.
参考:
您可以使用 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');
?>
~
这对我来说是更好的工作方式。
登录vps机器时转储mysql数据库很简单。
1.To 使用
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 andadmin
is the password.
参考:
您可以使用 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');
?>
~
这对我来说是更好的工作方式。