c# - 如何连接需要SSH的远程Mysql服务器?

标签 c# mysql ssh ftp

不确定这是问这个问题的地方,但我正在尝试连接到我拥有完全访问权限的服务器。我可以从网络登录 phpMyAdmin,但是当我尝试从 C# 连接到它时,它不起作用。它特别显示以下错误:

Unable to connect to any of the specified mysql hosts

这是我正在使用的连接字符串:

string mycon = "server=someIP;port=3306;uid=user;pwd=pwd;database=mydb;Convert Zero Datetime=True";

我认为这是因为服务器需要 SSH。有什么方法可以禁用连接的 SSH 要求吗?

最佳答案

如果端口 3306 关闭,您将无法从远程主机进行连接。 PHPmyadmin 可以工作,因为它与 mysql 服务器运行在同一台机器上(我假设),所以它不是从远程主机连接。您需要打开端口 3306 并配置 mysql 来监听端口 3306,或者您提到您有 ssh,这会打开另一个选项。

如果您无法向公众开放 3306,您可以创建一个到服务器的 ssh 隧道,将 mysql 服务器上的 3306 转发到本地计算机上的某个端口(例如 3307),然后配置 C# 进行连接到该本地端口。

string mycon = "server=localhost;port=3307;uid=user;pwd=pwd;database=mydb;Convert Zero Datetime=True";

以下是如何使用 putty 转发端口的示例。 http://www.cs.uu.nl/technical/services/ssh/putty/puttyfw.html

此外,检查 IP 上开放端口的最简单方法是使用 nmap 等端口扫描器。我假设您使用的是 Windows,因为您使用的是 C#。 这里有windows gui客户端:http://nmap.org/zenmap/

关于c# - 如何连接需要SSH的远程Mysql服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17662058/

相关文章:

c# - Mvvm后退按钮: Page and ViewModel lose command binding

c# - 将对象转换为 CSV 字符串

MySql (Mariadb) 'Select not exists' 在 sql 文件中不起作用

mysql - 对日期为今天的行进行排序

mysql - 具有复合主键的外键

c# - 从路径中删除图像时在 vb.net 中出现错误

c# - 使用 DistributedSqlServerCache 的 ASP.CORE session

login - ansible remote_user 作为 root

python - ssh:发送包含 RETURN 的 tmux 命令

git - 将文件推送到远程时权限被拒绝