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

标签 php mysql exec

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

我有以下 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)

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

最佳答案

改用 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');
?>

关于php - 在 php 中通过 `mysqlddump` 将数据库与 `exec()` 同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46279380/

相关文章:

PHP。删除部分数组

javascript - 通过 Ajax 发送数据、类和方法

php - MySqli 错误 : Can't create more than max_prepared_stmt_count statements (current value: 16382)

linux - 无需创建中间进程即可切换用户

php - 允许视频嵌入时需要注意哪些 XSS/CSRF 攻击(如果有)?

php - HTTP 响应代码 0 - 网站正在运行

mysql - 我在 MySQL 中遇到 SUM() 问题

mysql - 不允许主机 x 连接到此 mysql 服务器

c - C 中的 execvp 不通过 ar

mysql - 将命令中的密码从 .env 传递到 docker 内的 mysql