报错如下:
之所以出现这个错误,是因为Mysql默认配置了不支持远程连接引起的,可以看下,在安装MySQL的服务器上使用 mysql -u root -p 命令登录MySQL命令行:
输入用户密码。
查看root用户的权限
use mysql;
select host from user where user='root';
host字段代表什么意思?
Host列指定了允许用户登录所使用的IP,比如说root用户的host字段指定的值是101.101.1.1这个IP,那意思就是说root用户只能通过101.101.1.1这个IP的客户端去访问数据库。再比如说root用户的 Host字段设置为localhost,那么root用户只能通过本机客户端去访问。而%是个通配符,如果把root用户的host字段设置为%,那么root用户将可以在任何一个IP上都能连接上数据库,再比如root用户的Host设置为101.101.1.%,那么就表示只要是IP地址前缀为“101.101.1.”的客户端都可以连接。
到这里就明白了连接MySQL的时候为何会报上面的错误了吧,根据需要进行修改限制:
use mysql;
update user set host = '%' where user = 'root';
flush privileges;
总结下:
host的值:
- 指定IP的话只有指定的IP才能访问
- 101.101.1.%只有101.101.1段的IP才能访问
- %表示所有IP都能访问