禁用MySQL远程访问root用户

6
我有一个MySQL安装,最近被攻击了。不幸的是,这是因为另一个人远程访问了“root”账户。我正在尝试创建一个仅限于特定IP地址的管理员帐户,并撤销root的远程访问权限。
问题:
- 自定义管理员帐户在“主机”下设置了特定的IP地址,但目前允许来自任何IP地址的连接。 - 尽管主机设置为“127.0.0.1”,“::1”和“localhost”,根用户仍然允许远程登录。
在进行了以下截图中显示的更改后,我已刷新了权限,但现在不知道该怎么做。请问我做错了什么?

enter image description here


拥有一个名为backups的用户,可以从任何地方(%)访问,并拥有几乎所有权限,似乎并不是一个更好的选择。 - undefined
2个回答

16
运行以下 SQL 脚本,以从远程主机上删除“root”用户的所有访问权限。
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');

执行完这个命令后,输入 FLUSH PRIVILEGES;


3
我应该提到我已经这样做了,虽然我刚刚又尝试了一次但没有成功。我在PHPMyAdmin的SQL选项卡中以及直接在MySQL CLI中运行了两行代码。然而,在这样做后,我仍然能够使用root账户登录。 - user470760
尝试将身份验证插件更改为auth_socket。 - Angelus Roman

0

按照以下方式编辑my.ini或my.cnf:

sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
skip-networking

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