Navicat连接MySQL时出现 Access denied for user ‘root‘@‘xxx.xxx.xxx.xxx‘ (using password: YES) 的解决办法看完!绝对有用
连接不上可能有三种原因:第一种密码问题;第二种账户远程连接地址未开;第三种当前用户远程认证权限未开通。不多BB直接上解决办法!
第一密码问题
第一步找到my.cnf文件
find / -name my.cnf

第二步在my.cnf文件中添加添加一行skip-grant-tables,使其登录时跳过权限检查
vi my.cnf
skip-grant-tables

第三步检查mysql运行状态
service --status-all

第四步重启mysql
service mysql stop
service mysql start

第五步登录mysql这里登录时就可以不用输密码了
mysql -uroot -p

重置mysql密码,刷新缓存
use mysql;
update user set authentication_string=password("123456") WHERE user='root' and host = 'localhost';
flush privileges;


第六步重新打开my.cnf文件删掉skip-grant-tables,重启mysql

第二远程连接问题
第一登录MySQL,如果不知道密码参照第一个问题上面的方法
mysql -uroot -p你的密码
第二修改远程连接地址
看看你的root用户是否是 % 如果不是就往下看,如果是直接看第三个问题!!!
use mysql;
select host,user from user;
update user set host =’%’ where user=‘root’;

第三用户远程连接授权问题
第一还是登录mysql,如果不知道密码参照第一个问题上面的方法
mysql -uroot -p你的密码
第二授权
by后面跟的是你的数据库密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
FLUSH PRIVILEGES;
本文来自博客园,作者:虞泽,转载请注明原文链接:https://www.cnblogs.com/yuze-blog/p/19285799

浙公网安备 33010602011771号