Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何通过SSH连接到Aurora无服务器MySQL实例_C#_Amazon Web Services_.net Core_Amazon Rds_Amazon Aurora - Fatal编程技术网

C# 如何通过SSH连接到Aurora无服务器MySQL实例

C# 如何通过SSH连接到Aurora无服务器MySQL实例,c#,amazon-web-services,.net-core,amazon-rds,amazon-aurora,C#,Amazon Web Services,.net Core,Amazon Rds,Amazon Aurora,我无法通过EC2隧道找到Aurora MySql数据库 我们有一个Aurora无服务器数据库(MySql)。问题是我不知道如何从我的机器本地连接到db 我尝试将SSH选项添加到mysqlstringbuilder,如下所示: MySqlConnectionStringBuilder _connectionBuilder = new MySqlConnectionStringBuilder() { UserID = "admin",

我无法通过EC2隧道找到Aurora MySql数据库

我们有一个Aurora无服务器数据库(MySql)。问题是我不知道如何从我的机器本地连接到db

我尝试将SSH选项添加到
mysqlstring
builder,如下所示:

        MySqlConnectionStringBuilder _connectionBuilder = new MySqlConnectionStringBuilder()
        {
            UserID = "admin",
            Server = "RDS endpoint in Aws",
            Port = 3306,
            SshHostName = "Ip to the Ec2",
            SshUserName = "the ec2 user",
            SshPort = 22,
            SshKeyFile = @"filepath to local .pem file",
            Database = "db name",
            Password = "db-password"
        };
我尝试使用字符串生成器和sshclient,如:

 using (var sshClient = new SshClient(_connectionBuilder.SshHostName, 22, _connectionBuilder.SshUserName, new PrivateKeyFile(_connectionBuilder.SshKeyFile)))
            {

                sshClient.Connect();
                // SQL QUERY HERE
                sshClient.Disconnect();
            }

代码在释放到lambda实例时工作并连接,但在我的本地计算机上不工作

如果我打开CMD窗口并键入:

ssh -N -L 3306:{aws Db endpoint}:3306 -i {path to .pem} {user}@{ip}

并将服务器更改为本地主机。

您的数据库可能无法公开访问

PubliclyAccessible指示数据库实例是否为 面向互联网的实例。如果指定true,则为 创建具有可公开解析的DNS名称的实例,该名称 解析为公共IP地址。如果指定false,则为AWS CloudFormation使用DNS名称创建一个内部实例 解析为专用IP地址

创建数据库时,请确保将其设置为可公开访问,并且它位于连接了Internet网关的子网中

还要确保数据库的安全组允许连接到SSH端口(22)和DB tcp端口(3306)

编辑

您无法访问专有网络之外的Aurora服务器:

您不能为Aurora无服务器DB群集提供公共IP地址。您只能从基于Amazon VPC服务的虚拟私有云(VPC)中访问Aurora无服务器DB群集


你可以用这个。你可以找到一个有效的例子

您能够从本地机器通过SSH正常访问机器吗?是的,可以通过在命令窗口中使用SSH命令创建隧道来解决这个问题。你知道这在代码中也可以吗?啊哈,所以要在aws实例之外访问它,我需要将db设置为公共可访问?我认为这会使数据库不安全。但对于发展来说,也许可以?将尝试更改此设置我似乎找不到Aurora Serverless db cluster的此设置。我已阅读了有关AWS Aurora Serverless的文档。它的状态-看我的原始答案-我已经编辑了它。没有,但是通过ssh隧道它可以工作。使用mysql workbench时没有问题。Aurora serverless无法从本地计算机访问。Laimonas我可以通过使用ec2的ssh隧道从本地计算机访问它instance@MarcusLagerstedt您是否尝试创建ForwardedPortDynamic对象并将其添加到客户端,如回答中提供的示例所示?