Bonjour,
Je suis en train de revoir un de mes scripts écrit en bash.
Dans ce script, j'établis un tunnel SSH avec le serveur distant. Ce tunnel fait un lien (bind) entre le port local 3336 et le port distant 3306. J'utilise ensuite ce tunnel pour transmettre une commande mysql.
Le problème rencontré est que la commande mysql met à jour la base de données de la machine locale et non celle du serveur distant.
Voici le modèle de montage du tunnel :
Je suis en train de revoir un de mes scripts écrit en bash.
Dans ce script, j'établis un tunnel SSH avec le serveur distant. Ce tunnel fait un lien (bind) entre le port local 3336 et le port distant 3306. J'utilise ensuite ce tunnel pour transmettre une commande mysql.
Le problème rencontré est que la commande mysql met à jour la base de données de la machine locale et non celle du serveur distant.
Voici le modèle de montage du tunnel :
sshpass -p"$decryptedssh_pass" \
ssh -v -o 'ControlMaster=no,ControlPath=no' \
-$IP_version \
-N -L $tunnel_listening_port:$localhost:$db_listening_port \
-p $ssh_port \
"$ssh_login@$remote_server" &
Et le modèle de la commande mysql :
sshpass -p"$decryptedssh_pass" \
mysql -u "$db_login" -p$decrypteddb_pass --port "$tunnel_listening_port" -h "$localhost" -D "$db_name" \
-e "$SQLqueries;"
Pourriez-vous me dire pourquoi le code mysql s'exécute dans la base de données locale au lieu d'être redirigé vers le serveur distant au travers du tunnel ?