在安装完 MySQL 服务端之后,默认并不会允许远端设备连入本地数据库,仅限 localhost 登录。为了允许远端连接,需在白名单中添加指定 IP。
终端登录 MySQL 数据库(Windows 则需要 cd 到 MySQL 安装目录下再执行),并输入 root 密码:
1 2 3
| cd 'C:\Program Files\MySQL\MySQL Server 5.7\bin\' .\mysql.exe -u root -p
|
用如下命令查看当前 MySQL 有哪些用户登录的权限:
1 2 3 4
| use mysql;
select user, host from user;
|
结果如下,可见默认只有 localhost 被允许登录到 root 用户:
1 2 3 4 5 6 7
| +-----------+-----------+ | user | host | +-----------+-----------+ | mysql.sys | localhost | | root | localhost | +-----------+-----------+ 3 rows in set (0.00 sec)
|
允许 root 用户从任意 IP 登录(任意 IP 用 %
表示)或指定IP登录,权限为 ALL PRIVILEGES
,密码自定义:
1 2 3 4 5 6
| Grant all privileges on *.* to root@'%' identified by '[root密码]';
Grant all privileges on *.* to root@'[IP地址]' identified by '[root密码]';
flush privileges;
|
再次查表结果如下,root 已可以由任意 IP (%
表示)登录:
1 2 3 4 5 6 7 8
| +-----------+-----------+ | user | host | +-----------+-----------+ | root | % | | mysql.sys | localhost | | root | localhost | +-----------+-----------+ 3 rows in set (0.00 sec)
|
或者将 root 用户的 host 字段改为 %
,也能实现允许任意 IP 登录:
1 2 3 4 5 6
| use mysql;
update user set host = '%' where user = 'root';
flush privileges;
|
参考资料: