如何为用户授予MySQL服务器的远程访问权限?

136

如果我在MySQL数据库中执行SHOW GRANTS,我会得到:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' 
    IDENTIFIED BY PASSWORD 'some_characters' 
    WITH GRANT OPTION

如果我没记错的话,root@localhost 表示用户 root 只能从 localhost 访问该服务器。我该如何告诉 MySQL 授予 root 用户从同一网络中的其他机器访问这个 MySQL 服务器的权限?


6
将“localhost”更改为“%”将授予公共网络root访问权限。不要忘记执行“flush privileges;”。 - user972946
8
添加root@%会带来很多风险,不应该这样做。我知道这是一篇旧文章,但警告应该在这里。攻击者首先会瞄准root账户,而root@'%'意味着root用户可以从任何地方连接到你的MySQL账户。评论中无法覆盖的内容太多,但你应该尽量删除尽可能多的users@'%',并且任何声明为此的用户都应该有非常有限的权限。无论如何,你绝对不应该添加root@'%',你的应用程序也不应该期望该账户存在。 - Damon
嘿伙计们,应该从这个命令中删除PASSWORD字符串...它会导致错误...只需以IDENTIFIED BY和密码本身结尾即可。 - Mário de Sá Vera
11个回答

0

这对我有用。但是有一个奇怪的问题,即使我首先尝试了它们,也没有影响。我更新了phpmyadmin页面,以某种方式使其工作。

如果您需要访问local-xampp-mysql。您可以进入xampp-shell ->打开命令提示符。

然后mysql -uroot -p --port=3306或mysql -uroot -p(如果设置了密码)。之后,您可以从mysql shell页面授予这些访问权限(也可以从localhost / phpmyadmin中工作)。

如果有人发现这个主题并遇到初学者问题,只需添加这些内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接