В моем приложении С# WPF я пытаюсь получить доступ к SSH-серверу и сценарию некоторых команд. Он работает для простых команд, таких как ls
, hostname
и т.д., Но когда я попытался открыть mysql
, программа просто зависает, и мне нужно End Task
. По какой-то причине mysql
не считает это как команду, которая возвращает результат. Мой код:
using (var client = new SshClient(hostname, username, serverPassword))
{
try
{
client.Connect();
Console.WriteLine("Command>" + sshCommand);
var run = client.CreateCommand(sshCommand);
run.Execute();
Console.WriteLine("Return Value = {0}", run.Result);
client.Disconnect();
returnedResults = run.Result;
}
catch
{
Console.WriteLine("Fail");
}
}
Когда я вхожу на сервер с помощью putty
и отправляю команду mysql, я получаю следующее:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 113147
Server version: 5.7.21-0ubuntu0.16.04.1-log (Ubuntu)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Я хотел бы выполнить каждый шаг в изменении пароля Mysql, но вместо того, чтобы просто выполнять команды на сервере, проверите проверку, чтобы каждая команда получила ожидаемый результат перед отправкой следующей команды.
Это может быть потому, что mysql не является "одноразовым", но он переходит в сеанс mysql и ожидает ввода от пользователя, поэтому он может не возвращаться.