您的位置:首页 >宝塔面板如何开启MySQL远程访问权限_修改访问权限为所有人并放行3306端口
发布于2026-04-21 阅读(0)
扫一扫,手机访问

很多朋友第一次配置远程连接时,都会卡在第一步。默认安装的 MySQL,无论是独立安装还是通过宝塔面板一键部署,其用户权限通常只允许 localhost 或 127.0.0.1 进行本地连接。这时候,外部 IP 尝试连接会直接收到一个明确的拒绝信息:Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server。需要明确的是,这并非防火墙在作祟,而是 MySQL 自身的权限机制在发挥作用。
所以,操作顺序至关重要:必须先调整用户权限,再去处理端口放行。顺序一旦颠倒,就是白费功夫。
localhost 修改为 %(这个符号代表允许来自任意主机的连接)。GRANT ALL PRIVILEGES ON *.* TO 'your_user'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
解决了权限问题,只是闯过了第一关。宝塔面板自带的防火墙,在「安全」→ 「防火墙」设置中,默认策略是封禁所有非白名单端口,而 MySQL 的标准端口 3306 恰恰就在这个黑名单里。如果不放行,外部的 TCP 连接请求在系统层面就会被拦截,根本传递不到 MySQL 服务进程。
操作路径其实很清晰:
3306,协议选择 TCP,然后点击「放行」。3306 端口。云平台的安全组是网络层的防护,两者缺一不可。到了这一步,权限和端口都畅通了,但连接依然失败?问题可能藏在更深层的配置里。尤其是宝塔 8.x 版本之后集成的 MySQL 8.0+,其配置文件 /www/server/mysql/etc/my.cnf 中,默认可能包含了 bind-address = 127.0.0.1 这一行。这个配置会让 MySQL 服务只监听本地的回环地址,外部网络请求自然也就石沉大海了。
解决方法依然是修改配置并重启服务:
my.cnf 文件。bind-address 这一项,将其修改为 bind-address = 0.0.0.0(或者直接删除这一行,MySQL 默认会监听所有网络接口)。netstat -tlnp | grep :3306。如果看到监听地址显示为 0.0.0.0:3306 或 *:3306,才算是大功告成。有时候,连接能建立,但最终登录却被拒绝,并伴随报错:Client does not support authentication protocol requested by server。这通常是 MySQL 8.0 版本引入的新默认认证插件 caching_sha2_password 惹的祸。许多旧的客户端(例如某些老版本的 PHP 扩展或 Na vicat)尚未支持该协议,它们只认传统的 mysql_native_password。
针对此问题,有一个临时的解决方案(但请注意,长期对 root 用户使用此方法不推荐):
mysql -u root -p。ALTER USER 'your_user'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password';
FLUSH PRIVILEGES; 刷新权限。最后必须提醒的是,打通远程连接固然重要,但安全边界绝不能松懈。将用户权限设为 % 和直接对外暴露 3306 端口,本身就会引入风险。在生产环境中,至少应该将 % 替换为具体的、可信的 IP 地址段。更进一步,考虑通过 SSH 隧道、跳板机或数据库中间件来进行访问隔离,这才是兼顾便捷与安全的实践之道。
上一篇:喵趣漫画官网首页登录地址是什么
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9