Mariadb c 连接器 mysql_real_connect 失败错误 (2002) [HY000] "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)"
Mariadb c connector mysql_real_connect fails Error(2002) [HY000] "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)"
虽然我在 mysql_real_connect 函数中指定了端口,并且 unix 套接字名称为 NULL,但错误消息表明它正在尝试通过 unix sock default /tmp/mysql.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);
获取错误:错误 (2002) [HY000] "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)"
如果我将主机用作 "localhost",mysql_real_connect 将忽略端口,而是尝试使用 unix sock default /tmp/mysql.sock 进行连接。 Here
所以在本地机器上,如果我们需要使用端口连接,我们可以将主机参数中的 127.0.0.1 传递给 mysql_real_connect 函数。
虽然我在 mysql_real_connect 函数中指定了端口,并且 unix 套接字名称为 NULL,但错误消息表明它正在尝试通过 unix sock default /tmp/mysql.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);
获取错误:错误 (2002) [HY000] "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)"
如果我将主机用作 "localhost",mysql_real_connect 将忽略端口,而是尝试使用 unix sock default /tmp/mysql.sock 进行连接。 Here
所以在本地机器上,如果我们需要使用端口连接,我们可以将主机参数中的 127.0.0.1 传递给 mysql_real_connect 函数。