Назад | Перейти на главную страницу

Выполнение запроса MySQL на удаленном сервере с сохранением вывода локально в файл

CMD="use metadata; select * from usernames; select * from personData; select usernames.SNo, 
usernames.DataTelid, usernames.UName, personData.ActiveInactive from usernames, personData where usernames.DataTelid=personData.DataTelid into outfile '/tmp/querydb';"
ssh [USER-NAME]@[REMOTE-HOST] 
mysql -h HOST  -u USERNAME -pPASSWORD -e "$CMD"  < /tmp/querydb

С сервера A я вхожу на сервер B, на котором есть база данных mysql. Предполагается, что файл querydb создается на сервере B, но на сервере A. Я застрял, и как это сделать?

Что ж, я вижу две проблемы:

  1. Вы подключаетесь к серверу B по ssh, получаете там оболочку, а затем выполняете команду mysql. Никакое перенаправление вывода, выполненное на сервере B, не сможет вернуть файлы на сервер A.

  2. Ваше перенаправление вывода идет в неправильном направлении.

Попробуй это:

ssh user@host "mysql -u USER -pPASSWORD -e \"$CMD\"" > /tmp/querydb