在php中通过`exec()`将数据库与`mysqlddump`同步

时间:2017-09-18 12:32:33

标签: php mysql exec

我正在尝试通过将数据库复制到本地计算机来将localhost上的数据库与服务器上的数据库同步。

我有以下shell命令在终端中没有问题:

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

ssh登录已使用question@Serverfault中的密码自动执行。

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

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

关于如何进行的任何想法?

2 个答案:

答案 0 :(得分:0)

改为使用ssh_execdocs)。

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

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

答案 1 :(得分:0)

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

Apache user account passwordless access to the server - Ubuntu的答案产生了解决方案。