MySQL开启远程访问权限的两种方法

桃夭
桃夭
发布时间:2026-10-13 | 2人浏览过
原创

在开发环境中,常遇到本地应用需要连接远程数据库的场景。默认情况下,出于安全考虑,MySQL只允许本地(localhost)访问。本文将介绍通过命令行更改主机地址(改表法)和使用授权命令(授权法)来开启远程访问权限的操作步骤。

操作目标

解除MySQL服务器的本地访问限制,允许指定用户从远程客户端连接数据库。

准备条件

  1. 拥有MySQL服务器的root权限或具备管理员权限的用户账号。
  2. 能够通过SSH或物理控制台访问安装MySQL的服务器。
  3. 已知目标客户端的IP地址(若使用精确IP授权),或者确认允许所有IP访问(使用 %)。

操作方法

第1步:登录MySQL服务器

目的:进入数据库管理终端。
操作:在服务器上执行以下命令,输入密码后进入交互界面。

mysql -u root -p

第2步:实施远程访问配置

目的:赋予用户远程连接权限。以下为两种常用方式,任选其一即可。

方式A:授权法(推荐)
通过 GRANT 语句直接创建或更新用户权限,无需修改底层表结构。

  • 允许任意主机连接:
    将用户 root 对所有数据库的所有表赋予全部权限,并允许其再次授权。
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
  • 允许特定IP连接(更安全):
    仅允许IP地址 192.168.1.6 的主机以用户名 myuser 和密码 mypassword 连接。
    GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.6' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

方式B:改表法
适用于较旧版本或手动调整权限表的场景。将当前用户的host字段由 localhost 改为通配符 %。

use mysql;
update user set host = '%' where user = 'root';
select host, user from user;

第3步:刷新权限表

目的:使上述配置立即生效,无需重启服务。
操作:在MySQL提示符下执行:

FLUSH PRIVILEGES;

第4步:验证连接

目的:确认配置是否成功。
操作:退出当前会话(EXIT),在远程计算机上使用MySQL客户端尝试连接服务器IP。若连接成功,则说明远程访问已开启。

注意事项与排查

  • 防火墙设置:确保服务器的安全组或防火墙规则(如iptables、UFW)放行了 3306 端口。
  • bind-address:检查 /etc/mysql/my.cnf 或 /etc/my.cnf,确保 bind-address 未被设置为 127.0.0.1,否则网络层面的监听会被拦截。
  • 安全风险:将host设置为 % 意味着允许任何IP访问,生产环境建议尽量使用特定的IP地址段或IP进行授权。

总结

通过GRANT授权或修改User表Host字段,结合FLUSH PRIVILEGES,可以快速解决MySQL无法远程连接的问题。建议在生产环境中优先采用指定IP授权的方式以保障数据安全。以上就是MySQL数据库远程访问权限如何打开的详细内容,更多关于MySQL远程连接的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表