| 
 参考:http://bbs.csdn.net/topics/390201358  
http://bbs.csdn.net/topics/310006640本人的mysql通过localhost连接是提示该错误,但是通过ip又可以连接。。。下面是本人的解决方法:  
如果你没有配置mysql的环境变量的话,首先通过管理员开启cmd,然后进入mysql的bin目录。通过net stop mysql停止服务在键入下面内容:  
mysqld  --defaults-file="C:\Program Files\MySQL\MySQL Server 5.6\my.ini" --console --skip-grant-tables  
键入上面内容后,另外开启一个cmd,然后mysql -uroot -p<回车>,输入密码就行了。  
有图有真相,反正我是这样可以了,你们就看自己人品行不行啦:  
   
   
进入了mysql后别高兴,别着急关闭前一个cmd窗口,先执行下面操作:  
应该为update user set password = password ('123456') where user = "root";(ps:不知道可以可以不修改密码直接执行下面操作,读者可以自行试试)  
  restart一下mysql服务,用 root 和密码 123 登陆成功, 再: 
  
  GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; 
  
  来赋予所有用户远程连接权限,终于成功了. 
  |