在 Linux 系统中,如果你需要对 MySQL 服务进行权限授权,通常是指对 MySQL 用户进行授权,允许特定 IP 地址或 IP 段访问数据库。以下是一些常用的方法来实现这一目标:
✅ 方法一:使用 GRANT 命令授权 IP 段
1. 登录到 MySQL 服务器
mysql -u root -p
2. 授予用户访问权限(允许 IP 段)
GRANT ALL PRIVILEGES ON your_database.* TO 'your_user'@'your_ip_segment' IDENTIFIED BY 'your_password';
示例:
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'192.168.1.0/24' IDENTIFIED BY 'mypassword';
3. 刷新权限
FLUSH PRIVILEGES;
✅ 方法二:使用 mysql 命令行工具(推荐)
mysql -u root -p
在 MySQL 命令行中执行:
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'192.168.1.0/24' IDENTIFIED BY 'mypassword';
FLUSH PRIVILEGES;
✅ 方法三:使用 iptables 或 firewalld 限制 IP 访问(如果需要网络层面限制)
如果你希望从外部 IP 段访问 MySQL 服务,可以使用 iptables 或 firewalld 来限制访问。
示例:使用 iptables 限制 IP 段
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -j DROP
注意: 这个方法需要你手动维护 iptables 规则,不推荐用于生产环境。
✅ 方法四:使用 mysql 配置文件(my.cnf 或 my.ini)限制访问
在 MySQL 配置文件中,可以配置 bind-address 来限制监听 IP:
[mysqld]
bind-address = 127.0.0.1
这会限制 MySQL 只监听本地 IP,不对外部 IP 接收连接。
✅ 方法五:使用 user 表限制 IP
你可以直接在 MySQL 中使用 user 表来限制 IP:
INSERT INTO mysql.user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Index_priv, Alter_priv, Create_view, Create_routine, Create_trigger, Create_udf, Lock_tables_priv, Reload_priv, Shutdown_priv, Restart_priv, Execute_priv, Repl_slave_priv, Repl_client_priv, Grant_priv, Password_expired, Description)
VALUES ('192.168.1.0/24', 'myuser', 'mypassword', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y');
FLUSH PRIVILEGES;
✅ 总结
| 方法 | 适用场景 | 优点 |
|---|---|---|
GRANT 命令 |
直接授权用户 | 简单、高效 |
iptables / firewalld |
网络层面限制 | 更安全 |
bind-address |
配置限制 | 控制监听 IP |
user 表 |
精确控制 | 高度灵活 |
✅ 常见问题
-
如何查看当前授权的 IP?
SELECT Host, User, Password FROM mysql.user; -
如何撤销 IP 授权?
REVOKE ALL PRIVILEGES ON your_database.* FROM 'your_user'@'your_ip'; FLUSH PRIVILEGES;
如需进一步帮助,欢迎继续提问!


