Host 'localhost' is not allowed to connect to

Host 'localhost' is not allowed to connect to this MySQL server解决方案

 

原因:

之所以出现Host 'localhost' is not allowed to connect to this MySQL server,主要原因是用户在操作时,将root 这个用户不小心删掉了,而root 对应的ip地址一般用localhost来登录。当我把root这个删掉后,就会出现上述错题提醒····

 

解决方法:

在mysql安装文件中,找到 my.ini,在my.ini找到[mysqld],在后面加上skip-grant-tables,意思是开启不使用密码的权限,先重启mysql,然后用户mysql客户端软件登录上去,再添加root用户,并设置密码即可。记住,修改好后,要将刚才的修改再改回来,再重起一次mysql.

 

小提醒:

在创建用户,或是修改用户时,若主机设为localhost,将会导致用能用localhost才能连接!将其改为%,%表示通用,即用localhost和ip都可登录连接

 

小小感悟,有错误的地方,还望指正~!!!

文章出处:
http://www.cnblogs.com/ycsfwhh/archive/2011/02/18/1957980.html



上面是摘自网友的文章,今天我这边也出了类似的问题,我描述一下问题:

之前MySQL一直可以登录,但是一段时间不用了之后,今天突然想要做个东西了,就连本地MySQL做测试,没想到一晚上的时间全部用来修复MySQL客户端了。同样问题是连接客户端的时,报错:

Host 'localhost' is not allowed to connect to

所以到网上搜到上面的文章,上面的文章只是第一步。当我新建表的时候或者修改表的时候有出息了下面的提示(郁闷呢):

Table ‘xxx’ is marked as crashed and should be repaired


网上的教程说是表’XXX‘有问题,需要修复。网上有这样的解决办法:

找到mysql的安装目录的bin/myisamchk工具,在命令行中输入: 

myisamchk -c -r ../data/tablename/’XXX‘.MYI 

然后myisamchk 工具会帮助你恢复数据表的索引。好象也不用重新启动mysql,问题就解决了。

但是对我的问题不好使,因为我根本就找不到data文件夹和xxx table。无奈后来发现MySQL administrator工具有一个工具:

在user表上右键选择’Maintainence-repair Table‘,一步一步执行,就能解决问题了。


我兴冲冲的把my.ini 文件中的内容修改回去,再登录,还是提示期初的错误,啊~~~~~头大。

没办法问题还是要解决的。接下来还是修改my.ini文件,登录客户端后,为user表中的root用户授权:
grant all privileges on *.* to root@localhost identified by 'linuxtone' with GRANT OPTION; 

但是出现下面的提示:
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute

网友说不用理它,接着执行:

update user set password=password('linuxtone') where user='root'; 

Query OK, 0 rows affected (0.00 sec) 
Rows matched: 0 Changed: 0 Warnings: 0 

注意单双引号。 

mysql> flush privileges;   //注意先刷新下表 
Query OK, 0 rows affected (0.00 sec) 

mysql> grant all privileges on *.* to root@localhost identified by 'linuxtone' with GRANT OPTION; 
Query OK, 0 rows affected (0.00 sec) 

mysql> flush privileges; 
Query OK, 0 rows affected (0.00 sec) 

mysql> select * from user where user='root'; 


搞定!~!




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值