Mariadb c连接器 mysql_real_connect失败 Error(2002) [HY000]"无法通过套接字'tmpmysql.sock'(2)连接到本地MySQL服务器"。

问题描述 投票:1回答:1

虽然我在mysql_real_connect函数中指定了端口,并且unix套接字名称为NULL,但错误信息显示它正试图通过unix sock默认的tmpmysql.sock进行连接。

void show_error(MYSQL *mysql)
{
  printf("Error(%d) [%s] \"%s\"", mysql_errno(mysql),
         mysql_sqlstate(mysql),
         mysql_error(mysql));
  mysql_close(mysql);
  exit(-1);
}


int main(int argc, char *argv[])
{
  MYSQL *mysql;
  const char *query;
  MYSQL_RES *result;

  mysql= mysql_init(NULL);
  if (!mysql_real_connect(mysql, "localhost", "user", "user_pw",
                          "schema_test", 3306, NULL, 0))
    show_error(mysql);

得到错误信息。Error(2002) [HY000] "Can't connect to local MySQL server through socket 'tmpmysql.sock'(2)"。

c mariadb connector
1个回答
0
投票

如果我使用Host作为 "localhost",mysql_real_connect忽略了端口,而是试图通过unix sock默认的tmpmysql.sock进行连接。这里

所以在本地机器上,如果我们需要使用端口连接,我们可以在host参数中传递127.0.0.1给mysql_real_connect函数。

© www.soinside.com 2019 - 2024. All rights reserved.