MySQL连接器C API无法连接到MySQL服务器

MySQL连接器C API无法连接到MySQL服务器,mysql,c,sockets,Mysql,C,Sockets,我正在尝试使用OSX上的连接到MySQL数据库设置。使用此代码: MYSQL mysql; mysql_init(&mysql); if(!mysql_real_connect(&mysql,"localhost","root","",NULL,0,NULL,0)) { printf("Failed to connect to database: Error (%d): %s",mysql_errno(&mysql),mysql_error(&mysql)

我正在尝试使用OSX上的连接到MySQL数据库设置。使用此代码:

MYSQL mysql;
mysql_init(&mysql);
if(!mysql_real_connect(&mysql,"localhost","root","",NULL,0,NULL,0))
{
    printf("Failed to connect to database: Error (%d): %s",mysql_errno(&mysql),mysql_error(&mysql));
}
else printf("Connection success!");
我得到以下结果:

Failed to connect to database: Error (2002): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
我可以确认数据库是可操作的,因为phpMyAdmin与它连接良好,下面是config.inc.php文件:

/* Server parameters */
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['connect_type'] = 'socket'; 
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = true;

有人知道为什么phpMyAdmin可以连接但我的C程序不能连接吗?我已尝试强制TCP/IP连接,但无效。

您可以连接默认端口3306 mysql\u real\u connect(&mysql,“localhost”、“root”、“NULL、3306、NULL、0)

或者重新配置my.cnf(假设您使用linux)并重新启动mysql

[mysqld]
socket=/tmp/mysql.sock

[client]
socket=/tmp/mysql.sock

您可以连接默认端口3306 mysql\u real\u connect(&mysql,“localhost”、“root”、“NULL、3306、NULL、0)

或者重新配置my.cnf(假设您使用linux)并重新启动mysql

[mysqld]
socket=/tmp/mysql.sock

[client]
socket=/tmp/mysql.sock

谢谢,事实证明XAMPP更改了MySQL侦听的套接字,在找到my.cnf后,它声明了套接字的路径。尝试按照您的建议使用端口3306。不起作用。谢谢,事实证明XAMPP更改了MySQL侦听的套接字,在找到my.cnf后,它声明了到套接字的路径。尝试按照您的建议使用端口3306。不起作用。