当前位置: 首页 > article >正文

宝塔安装的 MySQL 无法连接的情况及解决方案

宝塔安装的 MySQL 无法连接的情况及解决方案

宝塔面板是一款流行的服务器管理工具,其中集成的 MySQL 数据库有时会出现连接问题。本文详细介绍两种最常见的 MySQL 连接错误:“1130 - Host is not allowed to connect” 和 “1045 - Access denied”,以及它们的解决方案。

一、错误 1130:Host ‘xxx.xxx.xxx.xxx’ is not allowed to connect to this MySQL server

错误原因

此错误表示您的 IP 地址没有被授权访问宝塔服务器上的 MySQL。主要原因包括:

  1. 宝塔面板默认只允许本地连接 MySQL
  2. MySQL 用户权限配置限制了连接来源
  3. 宝塔安全设置或防火墙阻止了 MySQL 端口访问

解决方案

方案1:手动配置 MySQL 用户远程访问权限
  1. 在宝塔面板中进入 终端 工具,或通过 SSH 连接到服务器
  2. 使用 root 用户登录 MySQL:
mysql -uroot -p
# 输入宝塔面板显示的 MySQL root 密码
  1. 执行以下 SQL 命令:
-- 创建允许从任意主机连接的root用户
CREATE USER 'root'@'%' IDENTIFIED BY '密码';-- 授予权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';-- 刷新权限
FLUSH PRIVILEGES;

也可以通过宝塔面板可视化配置添加允许任何人访问的 root 用户,找到高级设置

找到 MySQL 用户管理

创建用户,指定访问权限,如果希望任何人连接就选 --> 所有人

方案2:修改宝塔 MySQL 配置文件
  1. 在宝塔面板中打开 文件 管理
  2. 导航到 MySQL 配置文件(通常在 /etc/my.cnf/www/server/mysql/etc/my.cnf
  3. 找到并注释掉或修改以下行:
    注释掉这行:
bind-address = 127.0.0.1

或者改为:

bind-address = 0.0.0.0
  1. 在宝塔面板中重启 MySQL 服务
方案3:检查并调整宝塔防火墙设置
  1. 在宝塔面板中进入 安全 选项
  2. 检查防火墙是否放行了 MySQL 端口(默认 3306)
  3. 如果未放行,点击 放行端口 并添加 3306

二、错误 1045:Access denied for user ‘root’@‘localhost’ (using password: YES)

错误原因

此错误表示用户名和密码验证失败。在宝塔环境中常见原因包括:

  1. 使用了错误的 MySQL 密码(注意宝塔可能会定期自动更改 MySQL root 密码)
  2. 宝塔修改了 MySQL 的认证方式但客户端不兼容
  3. 数据库用户权限配置问题

解决方案

方案1:在宝塔面板中查看/重置正确的 MySQL 密码
  1. 登录宝塔面板
  2. 进入 数据库 选项
  3. 查看 root 密码或点击 修改密码 设置新密码
  4. 使用新密码重新连接
方案2:修改 MySQL 认证方式

宝塔安装的 MySQL 8.0+ 使用新的认证方式,可能与某些客户端不兼容:

  1. 登录宝塔面板的终端或SSH连接到服务器
  2. 登录 MySQL:
mysql -uroot -p
# 输入宝塔面板显示的 MySQL root 密码
  1. 修改认证方式:
-- 修改认证插件为兼容模式
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';
FLUSH PRIVILEGES;
方案3:通过宝塔面板重置 MySQL

如果无法登录 MySQL,可以通过宝塔面板重置:

  1. 在宝塔面板中,进入 数据库 选项
  2. 点击 MySQL管理器 -> 修复 按钮
  3. 如果仍有问题,可以选择 重置MySQL root密码
方案4:手动重置 MySQL 密码(适用于无法通过宝塔解决的情况)
  1. SSH连接到服务器并执行:
# 停止MySQL服务
/etc/init.d/mysqld stop# 安全模式启动MySQL
mysqld_safe --skip-grant-tables &# 无密码登录
mysql -u root# 执行以下SQL命令
USE mysql;
# MySQL 5.7
UPDATE user SET authentication_string=PASSWORD('密码') WHERE User='root';
# MySQL 8.0+
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';
FLUSH PRIVILEGES;
exit;# 重启MySQL服务
/etc/init.d/mysqld restart

三、同时解决宝塔 MySQL 远程连接问题的综合方案

步骤1:确认 MySQL 服务状态与密码

  1. 登录宝塔面板
  2. 进入 数据库 选项,确认 MySQL 状态为"正常",并记录 root 密码

步骤2:放行 MySQL 端口

  1. 在宝塔面板 安全 选项中检查防火墙
  2. 确保 MySQL 端口 3306 已放行
  3. 如果使用了云服务器,还需在云服务提供商的控制面板中放行相应端口

步骤3:创建数据库专用用户(推荐)

应用程序最好使用专门的数据库用户而非 root:

  1. 在宝塔面板 数据库 中添加新的 MySQL 数据库
  2. 创建与之关联的数据库用户
  3. 勾选"所有人"选项允许远程访问

步骤4:解决认证问题

如果仍然遇到认证问题,登录 MySQL 执行:

-- 对于root用户
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';FLUSH PRIVILEGES;

四、宝塔 MySQL 连接的安全最佳实践

  1. 避免使用 root 用户远程连接:为应用创建权限受限的专用数据库用户
  2. 限制访问 IP:远程访问设置中指定特定 IP 而非使用 % 通配符
  3. 使用强密码:设置包含大小写字母、数字和特殊字符的强密码
  4. 定期更换密码:通过宝塔面板定期更新数据库密码
  5. 启用 SSL 连接:配置 MySQL 使用 SSL/TLS 加密连接
  6. 监控异常登录:定期检查 MySQL 日志中的连接记录
  7. 最小权限原则:只授予用户必要的数据库和表权限

五、常见问题排查流程

如果以上方法仍无法解决连接问题,请按照以下步骤进行排查:

  1. 检查 MySQL 状态

    /etc/init.d/mysqld status
    
  2. 检查 MySQL 配置

    cat /www/server/mysql/etc/my.cnf
    
  3. 检查 MySQL 进程与端口

    ps aux | grep mysql
    netstat -tunlp | grep 3306
    
  4. 检查 MySQL 日志

    tail -100 /www/server/mysql/log/error.log
    
  5. 使用 telnet 测试端口连通性

    telnet 服务器IP 3306
    
  6. 检查宝塔日志

    cat /www/server/panel/logs/error.log
    
http://www.lryc.cn/news/2384457.html

相关文章:

  • 今日行情明日机会——20250523
  • 微服务项目->在线oj系统(Java版 - 4)
  • ReAct 与 CoAct:AI 代理的推理与行动之旅
  • 电子电路:什么是滤波器,什么优势高通滤波器?
  • uni-app使用大集
  • [Spring Boot]整合Java Mail实现Outlook发送邮件
  • 零件剖切配置教学 | 玩转EasyTwin 工业产线第三期(上)课程回顾
  • onnx模型转入rknn3399平台上工作记录
  • 进考场!软考考试现场答题的注意事项
  • 第三个小程序动工:一款结合ai的菜谱小程序
  • OpenCV CUDA 模块图像过滤------创建一个线性滤波器(Linear Filter)函数createLinearFilter()
  • 广告反作弊都有哪些方法
  • Excel 密码忘记了?巧用PassFab for Excel 解密帮您找回数据!
  • Vue.js教学第十二章:Vue Router实战指南(二)
  • 【前端开发】Uniapp日期时间选择器:实现分钟动态步长设置
  • 跑通Multi-Agent-Constrained-Policy-Optimisation
  • Visual Studio已更新为17.14+集成deepseek实现高效编程
  • go 基础语法 【教程 go tour】
  • 养生指南:五维打造健康新方式
  • 网络爬虫学习之httpx的使用
  • 无人机桥梁检测效率问题-高精度3D建模及航线规划
  • 想免费使用 AWS 云服务器?注册、验证及开通全攻略
  • 以太联 - Intellinet 闪耀台北 SecuTech 国际安全科技应用博览会
  • Pandas:数据分析中的缺失值检测、加载、设置、可视化与处理
  • 【Linux系列】EVS 与 VBD 的对比
  • 56 在standby待机打通uart调试的方法
  • OceanBase 共享存储:云原生数据库的存储
  • 安卓新建项目时,Gradle下载慢下载如何用国内的镜像
  • 讯联文库开发日志(五)登录拦截校验
  • PCB设计教程【入门篇】——电路分析基础-读懂原理图