'root'@'localhost'不能登录问题


鉴于我在遇到这个问题时,在网上搜索到几十个答案都是进行更改密码解决该问题,然并没有卵用。最后还是让小编找到了解决方法,希望大家遇到该问题时能够节省时间。解决方法如下:

 
#mysql -u root -p
提示”Access denied for user ‘root’@’localhost’ (using password: YES)”
 
这个原因看起来好像是root 密码被修改了,但是实际上不是这样的
    通过给my.ini文件中添加 skip-grant-tables 一行之后,再使用mysql直接回车之后输入如下命令:
update mysql.user set authentication_string="mypassword" where user="root";
flush privileges;
quit;
 在my.ini文件中删除skip-grant-tables之后重新登录还是这个错误。因此问题来了,究竟是什么原因导致不能登录?从错误可以猜出,应该是localhost没有与127.0.0.1对应的原因,输入命令查询:
    
select user,host from mysql.user;
 
显然是不对的。然后使用下面语句登录具体的ip地址:
mysql -u root -p xxxx -h 127.0.0.1
 
 
采用赋权语句,将root登录到具体的IP地址:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
将其中的%改为127.0.0.1,就可以在本机登录mysql了
要是不改变的话,在任意电脑都可以登录这个mysql数据库。远程电脑登录的命令为:
    
mysql -h 数据库所在主机ip  -u root -p
 
然后就可以登录了。
原文地址:https://www.cnblogs.com/Black-Cobra/p/7568568.html