Error No.1130 Host 'localhost' is not allowed to connection to this MySQL server
出现该问题主要原因:
1、 用于登录Mysql的用户不支持'localhost' 方式登录,只能支持IP登录,把localhost改为IP即可。
2、如果改为IP后依然不行,或者依然想以'localhost'方式的登录。则可以按如下方式解决:
把mysql服务停掉,进入cmd ,进入mysql的bin目录下,执行mysqld --skip-grant-tables 命令(该命令只能在mysql服务器上执行,主要目的是这种方式启动mysql服务后,不需要密码就可以进入mysql,然后对表进行操作)mysql 启动成功后,保持cmd窗口,再启动一个cmd窗口,同样进入mysql的bin目录下,执行 mysql -u root -p 命令进入mysql ,然后执行 use mysql ,进入数据库名为mysql的数据库中,然后 执行sql语句 "select host,user,password from user" 得如下图:
这个表中host就是表示可以通过哪些IP使用root用户登录。为了不限制IP可以把其中一个host值变为"%"其余的记录都可以删除
于是执行 update user set host = '%' where user = 'root' and host='localhost'; 然后再执行 delete from user where host != '%' user = 'root' 执行完后,再次执行sql语句 "select host,user,password from user" 得如下图:
到此,把两个CMD窗口关掉,重启定mysql服务,后就能正常通过root用户登录,不再报那个错误了。
3、如果把host设置为'%'后依然不好使,那就再通过mysqld --skip-grant-tables 启动mysql,然后通过 mysql -u root -p进入,
然后 use mysql,然后删掉user表中所有数据,然后插入root用户:
INSERT INTO user (Host,User,Password) VALUES( 'localhost', 'root',password( '123456'));
然后更新root用户的权限:
update user set Host='localhost',select_priv='y', insert_priv='y',update_priv='y',Alter_priv='y',delete_priv='y',create_priv='y',drop_priv='y',reload_priv='y',shutdown_priv='y',Process_priv='y',file_priv='y',grant_priv='y',References_priv='y',index_priv='y',create_user_priv='y',show_db_priv='y',super_priv='y',create_tmp_table_priv='y',Lock_tables_priv='y',execute_priv='y',repl_slave_priv='y',repl_client_priv='y',create_view_priv='y',show_view_priv='y',create_routine_priv='y',alter_routine_priv='y',create_user_priv='y' where user='root';commit;
到此,把CMD窗口关掉,重启定mysql服务,后就能正常通过root用户登录。
【欢迎评论啊!哪有错误,欢迎指出】