在 AWS EC2 实例上托管的 MySQL 数据库的连接字符串?

问题描述 投票:0回答:2

我通过以下链接在 AWS 免费实例 t2 micro 上设置了 MySQL 数据库:https://towardsdatascience.com/running-mysql-databases-on-aws-ec2-a-tutorial-for-beginners-4301faa0c247

现在我可以使用 MySql Workbench 和带有 pem 文件的 SSH 连接到数据库。

但是我的代码中连接到基于我的 sql 数据库的 ec2 实例的连接字符串应该是什么?

我试过这种格式: “服务器=ec2-xyz.compute-1.amazonaws.com;端口=3306;数据库=测试;用户ID=root;密码=测试;”

当我尝试从 .NET Core API 访问它时出现此错误:MySql.Data.MySqlClient.MySqlException (0x80004005): 无法连接到任何指定的 MySQL 主机

mysql .net .net-core amazon-ec2 mysql-workbench
2个回答
1
投票

您是否尝试过这样的格式,它指定 UID 和 PWD 而不是 UserId 和 Password?连接字符串语法可能对这些名称很挑剔。

Database=database_name;UID=user_name;PWD=password;Port=port_number;


0
投票

你需要通过ssh连接它。我发现这篇文章解释了如何通过 ssh 连接到 ec2 实例。您将需要“Renci SSH.NET”和“MySQLConnector”NuGet 包。 https://mysqlconnector.net/tutorials/connect-ssh/

var server = "your db & ssh server";
var sshUserName = "your SSH user name";
var sshPassword = "your SSH password";
var databaseUserName = "your database user name";
var databasePassword = "your database password";

var (sshClient, localPort) = ConnectSsh(server, sshUserName, sshPassword);
using (sshClient)
{
    MySqlConnectionStringBuilder csb = new MySqlConnectionStringBuilder
    {
        Server = "127.0.0.1",
        Port = localPort,
        UserID = databaseUserName,
        Password = databasePassword,
    };

    using var connection = new MySqlConnection(csb.ConnectionString);
    connection.Open();

希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.