MySQL数据库如何开启远程连接
开启 MySQL 远程连接需确保网络通畅、防火墙放行以及数据库权限正确配置。具体包括开放 3306 端口、绕过安全软件拦截,并通过 SQL grant 命令为指定用户分配权限。
开启远程连接前的准备
第一步:确认防火墙规则允许连接
MySQL 默认的监听端口是 3306。若要实现远程连接,必须确保服务器所在的防火墙(如 iptables、云厂商安全组等)没有阻止该端口。
- 检查默认端口:确认未修改默认的
3306端口。 - 自定义端口:如果在安装时修改了端口号,需在防火墙中开放对应的自定义端口。
- 联系管理员:若不清楚服务器防火墙的具体设置,请咨询服务器运维人员协助添加入站规则。
第二步:检查安全类软件拦截
如果服务器上安装了“安全狗”等应用层安全防护软件,它们可能会拦截来自外部的 IP 请求。请确保将合法的远程客户端 IP 地址添加到这些安全软件的白名单中,以免被误判为攻击而拦截。
配置数据库远程访问权限
第三步:登录 MySQL 控制台
在本地计算机或管理终端上打开命令行工具(Windows 下为 cmd 或 PowerShell,Linux/Mac 下为 Terminal)。以数据库管理员身份登录:
mysql -u root -p [输入密码]
例如,若 root 密码为 123456(注意生产环境建议分开输入避免泄露),命令如下:
mysql -uroot -p123456
第四步:创建用户并授予远程权限
在 MySQL 控制台中,使用 grant 语句为特定用户授予远程访问权限。基本语法结构如下:
grant 权限列表 on 数据库名.表名 to '用户名'@'允许连接的IP或域名' identified by '用户密码';
示例场景 A:仅允许从特定 IP(如备份服务器 115.28.36.60)访问特定数据库 discuz:
grant select, lock tables on discuz.* to ted@'115.28.36.60' identified by '123456';
示例场景 B:允许任意 IP 访问所有数据库(仅限测试或非严格安全环境):
grant all privileges on *.* to 'myuser'@'%' identified by 'mypass';
关键参数说明:
select, lock tables:授予的权限列表,可根据需要改为all privileges。discuz.*:数据库名.*表示该库下所有表;*.*表示所有库所有表。'ted'@'115.28.36.60':用户名为ted,限制只能从 IP115.28.36.60连接。若设为'%'则表示允许任意 IP 连接。identified by '123456':设置或更新该用户的登录密码。
第五步:立即生效并验证
执行完 grant 语句后,必须刷新系统权限缓存,新设置才会立即生效:
flush privileges;
为确保配置无误,可在控制台中查询当前用户及其允许的连接主机:
select host, user from mysql.user;
找到刚创建的用户记录,观察其 host 字段是否为预期的 IP 地址或 %,即表示远程访问权限配置成功。
总结
以上便是关于开启 MySQL 远程连接的详细内容,更多关于 MySQL 数据库管理与优化的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









