mysql如何进行远程连接

来源:程序开发作者:梦乃头衔:网络博主
导读:本期聚焦于小伙伴创作的《mysql如何进行远程连接》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《mysql如何进行远程连接》有用,将其分享出去将是对创作者最好的鼓励。

mysql默认仅允许本地主机连接数据库,要实现远程连接需要完成多项配置调整,从网络层到数据库权限层逐步开放访问能力,以下是完整的操作步骤和相关说明。

mysql如何进行远程连接

一、检查mysql服务端口开放状态

mysql默认使用3306端口通信,首先需要确认服务器防火墙已经开放该端口,允许外部IP访问。如果是云服务器还需要检查安全组规则是否放行3306端口。

1. 服务器防火墙配置(以centos系统firewalld为例)

执行以下命令开放3306端口并重启防火墙:

# 开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 重新加载防火墙规则
firewall-cmd --reload
# 查看端口开放状态
firewall-cmd --zone=public --list-ports

2. 云服务器安全组配置

登录云服务器控制台,找到对应实例的安全组规则,添加入站规则,协议选择TCP,端口范围填写3306,授权对象可以根据需要填写允许的客户端IP,若需要允许所有IP访问则填写0.0.0.0/0,但生产环境不建议这么配置。

二、修改mysql配置文件

mysql的配置文件中默认绑定了本地地址,需要修改该配置允许监听所有网络接口。

1. 找到mysql配置文件

不同系统下配置文件路径不同,常见路径如下:

  • centos系统:/etc/my.cnf
  • ubuntu系统:/etc/mysql/mysql.conf.d/mysqld.cnf
  • windows系统:mysql安装目录下的my.ini

2. 修改绑定地址

打开配置文件,找到bind-address配置项,默认值为127.0.0.1,将其修改为0.0.0.0,表示监听所有网络接口的连接请求,修改后保存文件并重启mysql服务。

# 修改前
bind-address = 127.0.0.1
# 修改后
bind-address = 0.0.0.0

重启mysql服务的命令示例(centos系统):

systemctl restart mysqld

三、配置mysql用户远程权限

即使网络和配置层已经开放,mysql自身的用户权限也会限制远程连接,需要为对应的用户授予远程访问权限。

1. 登录本地mysql服务

在mysql所在的服务器上执行以下命令登录数据库:

mysql -u root -p

2. 查看现有用户权限

执行以下sql语句查看当前所有用户的允许访问主机:

SELECT user, host FROM mysql.user;

默认情况下root用户的host字段为localhost,仅允许本地连接。

3. 授权用户远程访问权限

可以根据需要选择两种授权方式:

  • 方式一:允许指定IP的客户端连接,将下面的ip_address替换为实际客户端的IP地址
-- 创建新用户并授权(推荐生产环境使用)
CREATE USER 'remote_user'@'ip_address' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'ip_address' WITH GRANT OPTION;
-- 若需要授权已有用户,执行以下语句
UPDATE mysql.user SET host='ip_address' WHERE user='root';
  • 方式二:允许所有IP的客户端连接,仅建议测试环境使用
-- 创建新用户并授权
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;
-- 若需要授权已有用户,执行以下语句
UPDATE mysql.user SET host='%' WHERE user='root';

执行完成后刷新权限使配置生效:

FLUSH PRIVILEGES;

四、测试远程连接

在客户端机器上执行以下命令测试连接,将server_ip替换为mysql所在服务器的公网IP,remote_user替换为授权的用户名,your_password替换为对应的密码:

mysql -h server_ip -u remote_user -p

如果连接成功会进入mysql命令行界面,若连接失败可以根据错误提示排查问题。

五、常见错误排查

错误提示可能原因解决方法
Can't connect to MySQL server on 'server_ip' (10061)服务器3306端口未开放,或mysql服务未启动检查防火墙、安全组规则,确认mysql服务正常运行
Access denied for user 'user'@'client_ip' (using password: YES)用户权限未授权,或密码错误检查用户host配置,确认密码正确,重新刷新权限
Host 'client_ip' is not allowed to connect to this MySQL server用户的host字段未包含当前客户端IP修改用户host为对应IP或%,重新刷新权限

六、安全注意事项

远程连接mysql会带来一定的安全风险,建议遵循以下原则:

  • 生产环境不要将用户的host设置为%,尽量指定固定的客户端IP
  • 不要使用弱密码,定期更换数据库用户密码
  • 如果不需要远程连接,及时关闭3306端口的外网访问权限
  • 可以使用SSH隧道的方式替代直接开放3306端口,进一步提升安全性

mysqlremote_connection数据库配置用户权限修改时间:2026-06-29 12:42:30

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。