无法连接到远程 mySQL 数据库

Unable to connect to remote mySQL database

我一直在尝试使用以下代码来尝试连接到我在数字海洋上托管的远程数据库。

    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@"%" IDENTIFIED BY 'rootPass';

我一直在尝试检查 TCP/IP 是否已启用,但我无法通过 phpMyAdmin 找到它,也无法通过 putty 或任何其他方式找到它。

如您所知,我对 Linux 机器了解不多,我只是想连接到这个数据库来处理一个学校项目。谁知道我为解决此问题所做的工作。任何帮助将不胜感激。

可能的原因包括:

  1. MySQL 被配置为仅监听 "localhost" 或 127.0.0.1 - 这根本不允许远程连接,无论防火墙配置如何
  2. 防火墙可能配置为不允许端口 3306 上的通信通过
  3. MySQL 可能不是标准端口 3306 上的 运行,而是其他一些端口

很可能是 1. 或 2. 特别是 1. 是您一开始不会想到的。

请注意,许多托管商不允许从他们自己的网络外部访问数据库。这就是为什么经常 PhpMySQL 有效而远程连接不正常的原因。