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都有连接权限。