我正在开发一个 .Net 应用程序,它需要一个 ODBC 连接到外部供应商的 MySQL 数据库。问题是,在进行开发时,我无法从我的开发机器访问此 ODBC 连接。我可以访问可以连接到数据库的远程服务器。有没有办法在机器 A(我的开发机器)上创建一个可以使用机器 B 的 ODBC 连接的连接字符串?我真的很想避免在我的实际开发中使用这个远程服务器。
为什么不连接到本地 sql server,或者使用实体框架
public class BlogDataContext : DbContext
{
static readonly string connectionString = "Server=localhost; User ID=root; Password=pass; Database=blog";
public DbSet<Author> Authors { get; set; }
public DbSet<Post> Posts { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseMySql(connectionString, ServerVersion.AutoDetect(connectionString));
}
}
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public Author Author { get; set; }
}
public class Author
{
public int AuthorId { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public List<Post> Posts { get; set; }
}
一般来说,如果你有3台机器A,B,C
A 无法访问它需要的 C B 可以访问 C A 可以访问 B
你可以在 B 上设置一个反向代理服务器,它将充当 A 和 C 之间的中介。
现在,在您的场景中,您可以在所谓的“远程服务器”上设置反向代理并重定向 MYSQL 流量。然后在本地机器上设置 ODBC 连接到“远程服务器”,就像直接连接到 MYSQL 一样。
根据您正在处理的环境的可能限制,这可能会或可能不会顺利进行,但这是一般的想法。