1. 使用这样的方式确定错误
MYSQL mysql;
mysql_init(&mysql);
mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"your_prog_name");
if (!mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0))
{
fprintf(stderr, "Failed to connect to database: Error: %s\n",
mysql_error(&mysql));
}
如果使用MYSQL *con;这样的方式,mysql_error()是不会报错的(该指针为NULL)。
错误为“
Access denied for user 'root'@'localhost'
”
2. 解决方案
sudo mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
exit;
能用普通用户身份登陆。