在 mysql 中,默认用户 user 的 host 属性都是 localhost,也就是这个用户只能连接本地的数据库实例,
如果要使用该用户来远程登录其他主机的数据库实例,就必须必须将用户的 host 属性值更改成 %
。
host 指定了用户要连接的数据库实例所在主机的 IP
,比如 user=root Host=192.168.1.1。这里的意思就是说 root 用户只能连接主机 IP 是 192.168.1.1 的实例。% 是个通配符,如果 Host=192.168.1.%,那么就表示只要数据库实例所在主机的 IP 地址前缀为 “192.168.1.”,该用户就可以连接这个数据库实例。如果 Host=%,表示要连接的数据库实例所在的主机 IP 可以为任意 IP 段。(不同网络下,主机的 IP 不一定相同)
修改host的步骤
在cmd中输入以下命令:
(1)root用户登陆mysql
mysql -u root -p
(2)登录后,切换数据库
use mysql
(3)修改用户的host
update user set host = '%' where user ='root';
(4)修改完成,可以查询用户对应的host
SELECT Host,User FROM mysql.user;
结果如下
经过以上步骤,就可以连接任意主机的数据库。