Question

Je souhaite me connecter à mon serveur MySQL distant via la transmission de port. Malheureusement, mon fournisseur d'hébergement n'a pas php_ssh2 installé sur le serveur, je dois donc travailler phpseclib bibliothèque. Jusqu'à présent, je peux faire:

1 - Connectez-vous au serveur en utilisant Net_SSH2:

$ssh = new Net_SSH2('xx.xxx.xx.xx');  
 if (!$ssh->login('user', 'password')) {  
    exit('Login Failed');  
 }  

Si je fais echo $ssh->exec('ls -la');, il récupère la liste des répertoires disant que nous sommes connectés avec succès.

Si je cours

2 - echo $ssh->exec('echo "select * from table where company_id=\"15\";" | mysql');

Il se déclenche:

STDIN: n'est pas une erreur TTY 1045 (28000): Accès refusé pour l'utilisateur 'utilisateur' @ 'localhost' (en utilisant le mot de passe: non)

3 - Si je fais echo $ssh->exec('ssh -f -L 3307:localhost:3306 root@xx.xxx.xxx.xxx sleep 60 >> logfile');

Il s'exécute pour toujours, ce qui n'aura pas d'erreur de réponse du serveur.

Je retire mes cheveux. AIDER!!!!!

Était-ce utile?

La solution

Peut-être essayer ça ?:

echo $ssh->exec('echo "select * from table where company_id=\"15\";" | mysql -u username -password=password database');

Comme il faut probablement attendre qu'un mot de passe soit entré.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top