2017-09-18 1 views
1

J'essaie de synchroniser les bases de données sur le localhost avec celui sur un serveur en copiant la base de données sur la machine locale.synchroniser la base de données avec `mysqlddump` à` exec() `dans php

J'ai la commande shell suivante qui fonctionne sans problèmes dans le terminal:

ssh [email protected] "mysqldump -u user -p'secret' db-name" | mysql -u local_user -p'secret' db-name 

La connexion ssh a été automatisé avec un mot de passe comme dans [email protected].

J'ai essayé d'exécuter cette commande par exec() en PHP, mais je n'obtiens aucun résultat.

exec(ssh [email protected] "mysqldump -u user -p'secret' db-name" | mysql -u local_user -p'secret' db-name) 

Des idées pour savoir comment procéder?

+0

PHP semble être le mauvais outil pour le travail: cron - peut-être en combinaison avec quelque chose comme rsync - rendrait probablement cela beaucoup plus facile. – jeroen

Répondre

0

Utilisez plutôt 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'); 
?>