Вопрос

Я хочу подключиться к своему удаленному серверу MySQL через переадресацию портов.К сожалению, у моего хостинг-провайдера нет php_ssh2 установлен на сервере, поэтому мне приходится работать через phpseclib библиотека.На данный момент я могу сделать:

1 - Подключитесь к серверу с помощью Net_SSH2:

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

Если я сделаю echo $ssh->exec('ls -la');, он получает список каталогов, сообщающий, что мы успешно подключены.

если я побегу

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

Это вызывает:

стандартный ввод:это не tty ОШИБКА 1045 (28000):Доступ к пользователю «пользователь»@'Localhost' (используя пароль:НЕТ)

3 - Если я это сделаю echo $ssh->exec('ssh -f -L 3307:localhost:3306 root@xx.xxx.xxx.xxx sleep 60 >> logfile');

Он работает вечно, что приводит к отсутствию ошибок ответа от сервера.

Я выдергиваю волосы.ПОМОЩЬ!!!!!

Это было полезно?

Решение

Может быть, попробовать это?:

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

Вероятно, он ожидает ввода пароля.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top