gpt4 book ai didi

c# - 从 C# 到 MySQL 实例的 SSH 和 sudo 连接

转载 作者:行者123 更新时间:2023-11-30 21:25:20 24 4
gpt4 key购买 nike

我正在尝试编写一个程序,允许我与 Ubuntu 虚拟机中本地服务器上的远程数据库进行交互。以下是我可以在 Windows 终端中运行以连接到数据库的命令,这些命令基本上与我要在程序中执行以与数据库通信的命令相同。

>ssh user@192.168.0.60
user@192.168.0.60's password: *********

>sudo mysql

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 101
Server version: 5.7.27-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2019, 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>

我能够轻松地建立 ssh 连接,我可以执行像 ls 这样的命令并查看当前目录的内容。但是当我尝试执行像 sudo mysql 这样的命令时,程序似乎进入了一个循环 - 我猜是因为它被提示输入密码但我不知道如何在输入密码时提供密码提示。

我将在下面添加连接代码。我真的只需要能够使用连接运行 select 语句以从 MySQL 数据库检索数据。

using System;
using Renci.SshNet;


namespace DBconnector
{
class Program
{
private static string username = "user";
private static string password = "password";
private static string host = "192.168.0.60";

static void Main(string[] args)
{
SshClient client = new SshClient(host, 22, username, password);
client.Connect();
if (!client.IsConnected)
{
Console.WriteLine("Connection Error: Failed");
System.Environment.Exit(1);
}

SshCommand dir = client.RunCommand("...some command..."); // This is where I want to run 'sudo mysql'

// and here I need to be able to change DB and select from tables

Console.WriteLine(dir.Result);
}
}
}

谢谢!

最佳答案

对于您的字面问题,请参阅:

不过,以这种方式自动执行 sudo 是一种不好的做法:


我相信您实际上希望通过 SSH 建立 MySQL 连接隧道:

(除非您的数据库服务器实际上允许直接连接)

关于c# - 从 C# 到 MySQL 实例的 SSH 和 sudo 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59362161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com