0

我正在尝试将一个简单的程序连接到在 Google Cloud 中MariaDB创建的数据库。已经有一个工作安装VM和一个小型工作演示数据库。VMMariaDB

使用的代码如下:

#include <mysql++/mysql++.h>
#include <iostream>

// Nombres
using namespace std;
using namespace mysqlpp;

// INICIO
int main ()
{

    //Declara variables
    char server[]   = "104.197.112.189:3306";
    char user[]     = "root";
    char pass[]     = "xxxxxxxx";
    char db[]       = "resst";
    unsigned int i;

    //conexión
    Connection con;
    con.connect("", server, user, pass);
    con.select_db(db);

    //pedido SQL
    string consulta = "select * from  productos";

    //realización de pedido
    Query pedido = con.query(consulta);
    StoreQueryResult resp = pedido.store();
    Row fila;
    for (i=0;i<resp.num_rows();i++)
        {
            cout << "res " << i+1 << " " << resp[i]["nombre"] << endl;
        }

    con.disconnect();

    return 0;
}

此代码与在我的本地主机中创建的该数据库的精确副本完美配合,并在我在本地运行时打印结果。

另一方面,当我通过连接到在线数据库运行它时,程序完全没有显示,没有窗口,没有行,没有错误,只是我用空行运行它的终端,所以我不知道从哪里开始看着。错误报告处于活动状态,并显示发生的任何其他错误。

拜托,有人可以给我一个提示吗?

4

1 回答 1

1

好的,对于有类似问题的人来说,Mariadb(可能也适用于 MySQL)和 Google Cloud 默认锁定所有外部连接。可以分两步解决:

在谷歌云中:进入开发者控制台/你的项目/连接/防火墙规则并创建一个允许端口 3306 的新规则,这是 MySQL 和 Mariadb 的默认设置。

在 Mariadb 中:更改my.conf,遵循本教程的第一部分。就是这样,现在它正在工作。感谢@mrunion 的帮助。

于 2015-09-14T11:39:08.323 回答