我通过以下链接在 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 主机
您是否尝试过这样的格式,它指定 UID 和 PWD 而不是 UserId 和 Password?连接字符串语法可能对这些名称很挑剔。
Database=database_name;UID=user_name;PWD=password;Port=port_number;
你需要通过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();
希望这有帮助!