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如何升级到最新版本?(升级指南和步骤)


