Access denied for user 'root'@'localhost' (using password: YES)

问题描述:

1、Dos命令访问数据库root账户没问题,连接数据库的代码没问题,但是程序运行时报错: Access denied for user ‘root’@’localhost’ (using password: YES)。

Access denied for user 'root'@'localhost' (using password: YES)

2、Dos命令访问数据库root账户没问题,但是用可视化工具无法访问数据库。
Access denied for user 'root'@'localhost' (using password: YES)

原因分析:

本机环境可能同时运行了多个mysql进程,共用3306端口。比如安装某些软件时自带了mysql,开机时mysql服务自启动,我的问题是因为安装了BugFree导致的。

BugFree的安装路径:
Access denied for user 'root'@'localhost' (using password: YES)

MySQL的安装路径:
Access denied for user 'root'@'localhost' (using password: YES)

问题定位:

打开MySQL Workbench>>Management>>Server Status,查看Server Directories下的Base Drectory、Data Drectory访问的是否是你安装MySQl的路径,如果不是恭喜你中奖了。

错误的访问路径:
Access denied for user 'root'@'localhost' (using password: YES)

正确的访问路径:
Access denied for user 'root'@'localhost' (using password: YES)

解决办法:

1、清理环境,关掉其余mysql服务,保证在运行时只是你的mysql。打开控制面板>>管理工具>>服务>>mysql相关服务>>右键>>属性,查看可执行文件的路径是不是你的安装路径,停止那些访问路径不正确的服务。

Access denied for user 'root'@'localhost' (using password: YES)
开始看到这个服务的时候,以为是MySQL的一个辅助服务,没有详细的检查。

2、安装MySQL时不使用3306这个默认端口。