用于C-的MySQL连接器连接到远程数据库

时间:2014-11-20 22:39:35

标签: c mysql-connector

我使用MySQL Connector(用于C)尝试连接到远程数据库。但是,我的代码无法实例化与远程数据库的连接。这是代码

    MYSQL *conn;
    MYSQL_RES *res;
    MYSQL_ROW row;
    char *server = "192.168.1.114";
    char *user = "root";
    char *password = "PASSWORD_STUB"; /* set me first */
    char *database = "tmp";
    conn = mysql_init(NULL);
    /* Connect to database */
    if (!mysql_real_connect(conn, server,
                            user, password, database, 3306, NULL, 0)) {
       printf("ERROR CODE %u: %s", mysql_errno(conn),mysql_error(conn) );

    }else{
       printf("Connected..");
    }

错误的输出是

ERROR CODE 1045: Access denied for user 'root'@'192.168.1.100' (using password: YES)

我是否正在尝试正确连接服务器?错误代码中的IP是我的机器的IP而不是远程主机的IP。

2 个答案:

答案 0 :(得分:0)

导致访问失败的原因有很多,看看下面的链接,它提供了一些调试机制:

http://dev.mysql.com/doc/refman/5.1/en/access-denied.html

答案 1 :(得分:0)

这是锁定数据库以禁止root远程访问的标准部分。

从命令行尝试“ mysql -u root -p -h 192.168.1.114”

如果失败,请尝试使用root以外的其他用户。

在C不能期望远程连接之前,您必须使命令行登录远程运行。