我正在尝试通过将数据库复制到本地计算机来将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)
关于如何进行的任何想法?
答案 0 :(得分:0)
改为使用ssh_exec
(docs)。
<?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的答案产生了解决方案。