代码之家  ›  专栏  ›  技术社区  ›  Paul Kelly

MySQL C++连接器是否可以访问远程数据库?

  •  0
  • Paul Kelly  · 技术社区  · 15 年前

    我正在使用MySQL C++连接器在C++应用程序中访问MySQL数据库。如果在同一台机器上有C++和MySQL,它就可以正常工作。因此,类似下面的代码可以很好地工作:

    sql::Connection             *_con;
    sql::mysql::MySQL_Driver    *_driver;
    _driver = sql::mysql::get_mysql_driver_instance();
    _con = _driver->connect("tcp://127.0.0.1:3306", "user", "password");
    

    但是,如果数据库位于另一台计算机上,我似乎无法访问它。所以,就像这样:

    sql::Connection             *_con;
    sql::mysql::MySQL_Driver    *_driver;
    _driver = sql::mysql::get_mysql_driver_instance();
    _con = _driver->connect("tcp://somesite.com:3306", "user", "password");
    

    是不可能还是我做错了什么?

    2 回复  |  直到 11 年前
        1
  •  3
  •   Glen    15 年前

    您是否意外地设置了用户以便他们只能从本地计算机访问您的数据库?

    你做了吗

    create user 'user'@'127.0.0.1' ...
    

    create user 'user'@'%' ....
    

    如果你先登录,那么你就无法从其他机器登录。

    您是否也正确地授予了权限?

    看MySQL docs 有关如何正确执行此操作的更深入的说明

        2
  •  1
  •   Mark Callison    15 年前

    我已经通过VPN完成了这项工作,所以我假设这是可能的。您使用的端口正确吗?