当前位置: 代码网 > it编程>数据库>Mysql > 宝塔安装的MySQL无法连接的情况及解决方案

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

2025年05月23日 Mysql 我要评论
一、错误 1130:host ‘xxx.xxx.xxx.xxx’ is not allowed to connect to this mysql server错误原因此错误表示

一、错误 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 密码
  • 执行以下 sql 命令:
-- 创建允许从任意主机连接的root用户
create user 'root'@'%' identified by '密码';

-- 授予权限
grant all privileges on *.* to 'root'@'%';

-- 刷新权限
flush privileges;

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

找到 mysql 用户管理

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

方案2:修改宝塔 mysql 配置文件

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

或者改为:

bind-address = 0.0.0.0
  • 在宝塔面板中重启 mysql 服务

方案3:检查并调整宝塔防火墙设置

  • 在宝塔面板中进入 安全 选项
  • 检查防火墙是否放行了 mysql 端口(默认 3306)
  • 如果未放行,点击 放行端口 并添加 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 密码
  • 修改认证方式:
-- 修改认证插件为兼容模式
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. 最小权限原则:只授予用户必要的数据库和表权限

五、常见问题排查流程

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

检查 mysql 状态

/etc/init.d/mysqld status

检查 mysql 配置

cat /www/server/mysql/etc/my.cnf

检查 mysql 进程与端口

ps aux | grep mysql
netstat -tunlp | grep 3306

检查 mysql 日志

tail -100 /www/server/mysql/log/error.log

检查宝塔日志

cat /www/server/panel/logs/error.log

以上就是宝塔安装的mysql无法连接的情况及解决方案的详细内容,更多关于宝塔安装mysql无法连接的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com