MySQL 创建用户并授权远程访问
核心思路
首先查一下 user 表。
1 | |
表里只有个 root@localhost,因此在远程登录的时候,由于找不到能匹配的 user 对,登录会失败。解决方法很简单,要么修改已有的 user 行,将其 host 值改为远程访问所用的 ip(不推荐),要么添加一个新的 user。
添加新 user 代码如下:
1 | |
上述代码创建了一个用户名为 username,主机为 host,密码为 password 的用户,并将 database 数据库中的 table 表的所有操作权限都赋予了该用户,最后刷新了访问权限表。
用户名可以重复,但 username@host 对不可以,即在已有 root@localhost 的情况下,可以再创建一个 root@192.168.0.1,但不能再创建一个同样的 root@localhost 记录。在存在多个重复用户名时,登录时,MySQL 会按照一定顺序进行匹配,选择最先匹配到的记录进行登录尝试,大致顺序就是从最具体的 host 到最宽泛的 host,即‘%’(通配)。
MySQL 8.0 新变化
MySQL 8.0 不再允许直接使用 GRANT 语句创建用户,因此上面的代码应当被拆分,首先使用 CREATE 创建用户,而后使用 GRANT 授权。
1 | |