【问题标题】:Cannot connect to MySQL database from OVH server无法从 OVH 服务器连接到 MySQL 数据库
【发布时间】:2022-01-31 18:25:37
【问题描述】:

我无法从 Flutter 的包 mysql1 远程连接到托管在 OVH 上的数据库并收到以下错误:

颤振:SocketException:主机查找失败:'saintlouqpweb.mysql.db' (操作系统错误:提供节点名或服务名,或未知,errno = 8)

我通常通过 phpMyAdmin 访问它,我需要填写三个字段:服务器、用户和密码。除了数据库名称(phpMyAdmin 的服务器字段是 mysql1 的主机字段)之外,我在 Flutter 上使用与 mysql1 完全相同的值。

我已经搜索了几个小时的解决方案,但我仍然在这个论坛和网络上找不到任何东西。一切总是被带回“本地主机”服务器或与我的完全不同的问题。

这是导致错误的代码:

Future<List<dynamic>> getData() async
  {
    try {
      final conn = await MySqlConnection.connect(ConnectionSettings(
        host: 'saintlouqpweb.mysql.db', // the exact server name entered on phpMyAdmin
        user: 'myusername',
        password: '*********',
        db: 'mydatabasename',
      ));

    var results = await conn.query(
      'SELECT * FROM `mytable` WHERE ID=1;'
    );

    return results.toList();
    } catch (e) {
      print('$e');
    }
  }

如果有人能帮助我解决这个问题或以前遇到过同样的问题,我将不胜感激。

【问题讨论】:

  • saintlouqpweb.mysql.db 看起来不是有效的主机名。
  • 我也有同样的问题!您找到解决方案了吗?
  • @MarkRotteveel 这是我连接到 phpMyAdmin 时输入的主机名...
  • @MianalaLoharano 出于安全原因,OVH 似乎不可能远程访问他们的数据库...您是否尝试过下面 Brugere 的答案?
  • @ventatto 必须有一个解决方案,我们怎么不能连接到我们自己的数据库?

标签: mysql flutter ovh


【解决方案1】:

正如 Mark Rotteveel 在评论中所建议的,您在代码示例中提供的主机看起来无效。

您可以在 OVHcloud 管理器中找到您的主机地址:https://www.ovh.com/manager/web

可在Web Cloud->Databases 和表格General Informations 中访问

【讨论】:

  • 好的,谢谢你的建议,数据库管理员告诉我访问被禁止是正常的(出于安全原因),但我会告诉他你的答案
【解决方案2】:

根据主机名,您似乎拥有一个共享的 SQL 数据库。根据this OVH community post不允许远程连接。

【讨论】:

  • 好吧,这确实是我网站的数据库,所以我想它是网络托管。仍在寻找解决方案,但我认为 OVH 不可能...
  • @ventatto 您需要订购单独的数据库服务(OVH Cloud DB)。