0
点赞
收藏
分享

微信扫一扫

MySQL 1251错误 Access denied using password: YES failed解决方案

场景

     之前MySQL服务器版本是5.7,升级到8.0以后,修复漏洞,导致后台C++服务调用mysql_real_connect函数返回1251,连接数据库失败的错误码


排查过程

添加代码排查:

unsigned int STDCALL mysql_errno(MYSQL *mysql);

错误码:1251

const char * STDCALL mysql_error(MYSQL *mysql);

错误信息:Access denied for user 'root'@'WIN-TOR4ST1QUOE' (using password: YES) failed


原因

MySQL8.0默认采用mysql_native_password方式验证密码,所以才会出现这个问题


解决方案

需要将默认的连接方式及root账户的连接方式恢复为旧的mysql_native_password方式,执行如下的指令:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password  BY 'root@123';

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password  BY 'root@123';

FLUSH PRIVILEGES;

举报

相关推荐

0 条评论