mysql安装完成后配置远程访问权限流程

发布时间 - 2026-02-02 00:00:00    点击率:
MySQL远程访问需依次配置:1.创建'root'@'%'用户并授权;2.放行3306端口防火墙;3.将bind-address改为0.0.0.0;4.MySQL 8.0+需处理caching_sha2_password兼容性问题。

修改 MySQL 用户的 host 值为 %

MySQL 默认安装后,root 用户的 host'localhost',只允许本机连接。远程访问需要将其改为 '%'(匹配任意主机),或指定 IP 更安全。

  • 先用本地命令行登录:
    mysql -u root -p
  • 执行授权语句(注意:MySQL 8.0+ 不再支持直接 UPDATE mysql.user):
    CREATE USER 'root'@'%' IDENTIFIED BY 'your_password';
    GRANT ALL PRIVILEGES ON *.* TO

    'root'@'%' WITH GRANT OPTION;
  • 刷新权限:
    FLUSH PRIVILEGES;
  • 验证修改是否生效:
    SELECT user, host FROM mysql.user WHERE user = 'root';
    ——应看到 host 列包含 %

检查并关闭防火墙或放行 3306 端口

即使 MySQL 允许远程连接,系统防火墙也可能拦截请求。常见错误现象是“Connection refused”或“timeout”,但 telnet your_ip 3306 不通。

  • Ubuntu/Debian:
    sudo ufw allow 3306
    或临时禁用:
    sudo ufw disable
  • CentOS/RHEL 7+:
    sudo firewall-cmd --permanent --add-port=3306/tcp
    sudo firewall-cmd --reload
  • Windows Server:在“高级安全 Windows 防火墙”中新建入站规则,开放 TCP 3306

确认 MySQL 绑定地址是否监听外部 IP

MySQL 默认可能只绑定 127.0.0.1,导致即使用户和防火墙都配对了,仍无法远程连接。

  • 编辑配置文件:
    /etc/mysql/mysql.conf.d/mysqld.cnf
    (Ubuntu)或
    /etc/my.cnf
    (CentOS)
  • 查找 bind-address 行,改为:
    bind-address = 0.0.0.0
    (监听所有 IPv4 接口)
    或更安全地指定内网 IP,如:
    bind-address = 192.168.1.100
  • 重启服务:
    sudo systemctl restart mysql
    (Ubuntu)或
    sudo systemctl restart mysqld
    (CentOS)
  • 验证监听状态:
    sudo netstat -tuln | grep :3306
    ——输出中应含 *:3306 或具体 IP:3306,而非仅 127.0.0.1:3306

MySQL 8.0+ 的密码认证插件兼容性问题

MySQL 8.0 默认使用 caching_sha2_password 插件,部分旧客户端(如某些 Python pymysql 版本、Navicat 旧版)不支持,会报错 Authentication plugin 'caching_sha2_password' cannot be loaded

  • 临时兼容方案(不推荐长期使用):
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password';
    FLUSH PRIVILEGES;
  • 更稳妥做法是升级客户端驱动,或连接时显式指定插件(如 Python 中加参数 auth_plugin='caching_sha2_password'
  • 检查当前插件:
    SELECT user, host, plugin FROM mysql.user WHERE user = 'root';

MySQL 远程访问失败时,90% 的情况卡在 bind-address、防火墙、用户 host 三者之一;密码插件问题多出现在 MySQL 8.0+ 与老工具混用场景,容易被忽略。


# mysql  # word  # python  # centos  # windows  # navicat  # 防火墙  # 端口  # ubuntu  # 工具  # 接口  # debian  # 远程访问  # 绑定  # 客户端  # 将其  # 不支持  # 报错  # 而非  # 重启  # 本机  # 多出 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在Windows虚拟主机上快速搭建网站?  如何确保西部建站助手FTP传输的安全性?  如何基于云服务器快速搭建个人网站?  BootStrap整体框架之基础布局组件  EditPlus中的正则表达式 实战(4)  Laravel如何配置和使用缓存?(Redis代码示例)  javascript日期怎么处理_如何格式化输出  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  Swift中swift中的switch 语句  如何获取免费开源的自助建站系统源码?  Python结构化数据采集_字段抽取解析【教程】  北京网站制作公司哪家好一点,北京租房网站有哪些?  如何快速选择适合个人网站的云服务器配置?  Laravel如何与Inertia.js和Vue/React构建现代单页应用  如何用AWS免费套餐快速搭建高效网站?  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  如何快速搭建高效WAP手机网站吸引移动用户?  C++时间戳转换成日期时间的步骤和示例代码  Laravel中的Facade(门面)到底是什么原理  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  javascript中对象的定义、使用以及对象和原型链操作小结  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  Laravel用户密码怎么加密_Laravel Hash门面使用教程  大同网页,大同瑞慈医院官网?  悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音  浅谈javascript alert和confirm的美化  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  香港服务器租用每月最低只需15元?  Bootstrap整体框架之CSS12栅格系统  MySQL查询结果复制到新表的方法(更新、插入)  🚀拖拽式CMS建站能否实现高效与个性化并存?  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  php json中文编码为null的解决办法  如何快速打造个性化非模板自助建站?  Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID  如何快速搭建高效简练网站?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  Android Socket接口实现即时通讯实例代码  如何将凡科建站内容保存为本地文件?  如何快速搭建FTP站点实现文件共享?  php静态变量怎么调试_php静态变量作用域调试技巧【解答】  如何自定义建站之星模板颜色并下载新样式?  猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】  香港服务器WordPress建站指南:SEO优化与高效部署策略  Laravel如何升级到最新版本?(升级指南和步骤)