通过php中的“exec()”将数据库与“mysqlddump”同步

通过php中的“exec()”将数据库与“mysqlddump”同步,php,mysql,exec,Php,Mysql,Exec,我试图通过将本地主机上的数据库复制到本地计算机来同步本地主机上的数据库和服务器上的数据库 我有以下shell命令,在终端中可以正常工作: ssh user@server "mysqldump -u user -p'secret' db-name" | mysql -u local_user -p'secret' db-name ssh登录已使用类似于中的密码短语自动完成 我曾尝试在php中通过exec()执行此命令,但没有得到任何结果 exec(ssh user@server "mysqldu

我试图通过将本地主机上的数据库复制到本地计算机来同步本地主机上的数据库和服务器上的数据库

我有以下shell命令,在终端中可以正常工作:

ssh user@server "mysqldump -u user -p'secret' db-name" | mysql -u local_user -p'secret' db-name
ssh登录已使用类似于中的密码短语自动完成

我曾尝试在php中通过
exec()
执行此命令,但没有得到任何结果

exec(ssh user@server "mysqldump -u user -p'secret' db-name" | mysql -u local_user -p'secret' db-name)

有没有关于如何继续的想法?

使用
ssh\u exec
代替()


使用
ssh\u exec
代替()


找到了问题。
www-data
用户无法使用生成的密钥登录。(无效权限)


对的回答产生了解决方案。

发现了问题。
www-data
用户无法使用生成的密钥登录。(无效权限)


对的回答产生了一个解决方案。

PHP听起来像是用于此项工作的错误工具:cron-可能与rsync之类的工具结合使用-可能会使这项工作变得容易得多。PHP听起来像是用于此项工作的错误工具:cron-可能与rsync之类的工具结合使用-可能会使这项工作变得容易得多。
<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$stream = ssh2_exec($connection, '/usr/local/bin/php -i');
?>