PhPSECLIB Connect MySQL Server
-
12-11-2019 - |
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!!!!!
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é.