MySQL连接报错(错误:1130)

1. 原因

显示这个错误是因为没有连接到该机器MySQL数据库的权限,这是在一开始安装MySQL是默认设置的。

在数据库mysql下有一张名为`user`的表,其中的字段user下的root的值默认为localhost,也就是只允许本机(安装了这个数据库的机器)进行连接,如下图

 

 

 2. 解决办法

将这个值修改为通配符`%`,意为所有机器均有连接访问这个数据库的权限

2.1 CMD下修改

mysql -u root -p "密码";

use mysql;

select host from user where user = `root`;-- 这个不写也可以,只是为了查看locahost的值,详见下图

update mysql.user set `host` = `%` where user = `root`;-- 修改值

flush privileges;-- 刷新

exit; -- 退出

 

 我们在查看host的那一行可以看出它原本的值为localhost

3. 原理

Host列指定了允许用户登录所使用的IP,比如user=root Host=111.222.33.4。这里的意思就是说root用户只能通过111.222.33.4的客户端去访问。 而%是个通配符,如果Host=111.222.33.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=%,表示所有IP都有连接权限。

 

posted @ 2020-08-13 11:07  YIYUYI  阅读(722)  评论(0编辑  收藏  举报