mysql如何限制用户远程登录

来源:这里教程网 时间:2026-02-28 20:09:00 作者:

在 MySQL 中限制用户远程登录,核心是控制用户的主机访问权限和网络配置。可以通过用户账户设置、MySQL 配置文件以及操作系统防火墙等多层手段实现。

1. 控制用户的主机访问权限

MySQL 用户账号由用户名和主机名共同定义。如果只允许本地登录,应避免创建允许远程连接的用户。

查看当前用户及其允许的主机:

SELECT user, host FROM mysql.user;

确保敏感用户(如 root)仅绑定到本地:

ALTER USER 'root'@'%' IDENTIFIED BY '密码' ACCOUNT LOCK; 或删除远程 root 账户:

DROP USER 'root'@'%';

只保留本地访问的用户:

CREATE USER 'admin'@'localhost' IDENTIFIED BY '强密码';

这样该用户只能从本机登录,无法远程连接。

2. 修改 MySQL 配置绑定本地地址

编辑 MySQL 配置文件(通常为 my.cnfmy.ini),限制 MySQL 只监听本地回环地址。

找到 [mysqld] 段落,添加或修改:

bind-address = 127.0.0.1

这表示 MySQL 仅接受来自本机的连接,拒绝外部 IP 访问。

保存后重启 MySQL 服务:

sudo systemctl restart mysql(Linux 系统)

3. 使用防火墙限制访问端口

即使 MySQL 允许远程连接,也可以通过系统防火墙阻止外部访问 3306 端口。

使用 iptables 禁止外部访问:

iptables -A INPUT -p tcp --dport 3306 -j DROP

若需仅允许可信 IP,例如只让 192.168.1.100 连接:

iptables -A INPUT -p tcp -s 192.168.1.100 --dport 3306 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j DROP

4. 定期检查并清理远程用户

定期运行以下命令检查是否存在可远程登录的账户:

SELECT user, host FROM mysql.user WHERE host != 'localhost' AND host != '127.0.0.1';

发现不必要的远程访问账户,及时删除或限制。

基本上就这些。通过合理设置用户权限、绑定本地地址和防火墙规则,能有效防止 MySQL 被远程登录滥用。

相关推荐