【发布时间】:2023-04-01 09:37:01
【问题描述】:
我一直在尝试以下代码来尝试连接到我在数字海洋上托管的远程数据库。
MySqlConnection myConnection = new MySqlConnection("Server = 104.236.197.146; Port = 3306; Database = BattleRoyale; Uid = root; Pwd = password");
try
{
myConnection.Open();
}
catch (Exception e)
{
MessageBox.Show( e.ToString(), "Database connection error" , MessageBoxButtons.OK, MessageBoxIcon.Error);
}
每当我尝试运行此代码时,我都会收到以下错误:
MySql.Data.MySqlClient.MySqlException (0x80004005):无法连接到任何指定的 MySql 主机。
我认为问题出在托管数据库上。我尝试了以下方法:
将所有权限授予 . 到 root@"%" 由 'rootPass' 识别;
我一直在尝试检查是否启用了 TCP/IP,但我无法通过 phpMyAdmin 找到它,也无法通过 putty 或其他任何东西。
如您所知,我对 Linux 机器知之甚少,我只是想连接到这个数据库来完成一个学校项目。谁知道我为解决这个问题做了什么。任何帮助将不胜感激。
【问题讨论】:
-
服务器是否可以从您的位置访问?尝试 ping 它。如果 ping 成功,您还可以尝试使用套接字来建立与 ip/port 的 tcp/ip 连接,以确保另一端有人在监听...
-
如果您允许来自所有主机 '%' 的连接,并不一定意味着它允许删除连接。尝试 telnet 104.236.197.146 3306 看看是否可以连接。我认为问题只在这里。如果无法连接,则需要在防火墙中启用该端口。
-
尝试 telnet 到您正在使用的服务器和端口,看到您实际上可以建立连接 - 排除防火墙
-
尝试打开 104.236.197.146 3306 并出现错误,它只是显示“连接失败”,有什么想法可以尝试下一步吗?
-
@KrishnanduSarkar ... 或确保 MySQL 侦听正确的公共 IP 地址。虽然在很多情况下它是防火墙,但最近这对我来说一直是个问题。
标签: c# mysql phpmyadmin ubuntu-12.04