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

暴力解决MySQL连接失败

本文涉及

  1. 清空root密码

  2. 完全重置MySQL权限

  3. 彻底卸载并重装MySQL
    务必在测试/本地环境操作,生产环境慎用!

场景

Spring Boot项目连接MySQL一直报Access denied for user 'root'@'localhost',改密码、换驱动都没用?

步骤1:完全重置MySQL权限

1.1 停止MySQL服务

sudo systemctl stop mysql

1.2 以跳过权限方式启动MySQL(无密码直接root登录)

sudo mysqld_safe --skip-grant-tables &

1.3 登录MySQL(此时无需密码)

mysql -u root

1.4 清空root密码并刷新权限(⚠️此操作会移除所有权限限制)

UPDATE mysql.user SET authentication_string='', plugin='mysql_native_password' 
WHERE user='root';
FLUSH PRIVILEGES;
EXIT;

1.5 重启MySQL正常模式

sudo systemctl restart mysql

1.6 用空密码测试连接

mysql -u root  # 应该能直接登录
表格
测试结果问题根源解决方案
空密码可连接MySQL权限系统损坏执行mysql_secure_installation重建权限
空密码仍失败100%网络/防火墙问题继续看必杀技排查

💥 必杀技排查(空密码也失败时)

2.1 彻底绕过TCP/IP,用Unix Socket连接(Linux/Mac专属)

spring:datasource:url: jdbc:mysql:///your_db?socket=/var/run/mysqld/mysqld.sockusername: rootpassword: ""// 完全避开网络层,若失败说明MySQL服务本身异常。

2.2 用telnet暴力验证端口通不通

telnet 127.0.0.1 3306
  • 看到5.7.29之类版本号 → 端口通的,是认证问题

  • 连接被拒绝 → 防火墙/MySQL没启动

2.3 终极验证:用MySQL命令行客户端模拟JDBC行为

mysql -u root -p"p@ssword" --protocol=tcp -h 127.0.0.1
  • 成功 → Spring配置有问题

  • 失败 → MySQL服务端配置问题

现象问题根源解决方案
空密码可连接MySQL权限系统损坏mysql_secure_installation重建权限
只有socket能连MySQL绑定IP错误修改my.cnfbind-address=0.0.0.0
telnet不通防火墙/服务未启动sudo ufw allow 3306 或重装MySQL


最后的大招(全失败时用)

3.1 完全卸载MySQL

sudo apt purge mysql*
sudo rm -rf /etc/mysql /var/lib/mysql

3.2 重装MySQL并设置简单密码

sudo apt install mysql-server
sudo mysql_secure_installation

3.3 重新用root@%权限

CREATE USER 'root'@'%' IDENTIFIED BY 'simple123';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

✅ Spring Boot配置示例(最终可用版)

spring:datasource:url: jdbc:mysql://localhost:3306/your_db?useSSL=false&allowPublicKeyRetrieval=trueusername: rootpassword: simple123

总结

  1. 空密码测试 → 快速区分是权限还是网络问题

  2. Socket直连 → 100%排除网络干扰

  3. telnet验证 → 一眼看出端口是否通

  4. 重装大招 → 终局解法,99%问题搞定

以上是参考一些网上的方法总结之后用ai进行整理了一下,我发一下防止有朋友找不到解决方法浪费时间的,记录一下小bug也是,修改的时候也是浪费了好一顿力气。

http://www.xdnf.cn/news/17223.html

相关文章:

  • 从0配置yolo实例分割(ubuntu)
  • springBoot集成minio并实现文件的上传下载
  • OpenAI 开源模型 GPT-OSS MCP服务器深度解密:从工具集成到系统提示全自动化,浏览器+Python无缝协同的底层逻辑
  • 轻松实现浏览器自动化——AI浏览器自动化框架Stagehand
  • 【R语言】重新绘制高清MaxEnt的单因素响应曲线图像
  • 写Rust GPU内核驱动:GPU驱动工作原理简述
  • 告别Cursor!最强AI编程辅助Claude Code安装到使用全流程讲解
  • Beelzebub靶机
  • 第二十七天(数据结构:图)
  • Linux线程学习
  • Flutter 局部刷新方案对比:ValueListenableBuilder vs. GetBuilder vs. Obx
  • 力扣经典算法篇-46-阶乘后的零(正向步长遍历,逆向步长遍历)
  • 了解大型语言模型:力量与潜力
  • 什么是键值缓存?让 LLM 闪电般快速
  • 每日五个pyecharts可视化图表-bars(6)
  • 关于Android studio调试功能使用
  • 2025年主流开源音视频播放项目深度解析
  • MCU中的USB
  • 聚众识别场景误报率↓76%:陌讯动态密度估计算法实战解析
  • 【C语言】深入理解编译与链接过程
  • 前后端加密传数据实现方案
  • OpenCV入门:图像处理基础教程
  • [优选算法专题一双指针——两数之和](双指针和哈希表)
  • Qwen-Image开源模型实战
  • Spring、Spring MVC、MyBatis 和 Spring Boot的关系
  • 防火墙环境下的全网服务器数据自动化备份平台搭建:基于 rsync 的完整实施指南
  • 板块三章节3——NFS 服务器
  • 秋招笔记-8.7
  • Redis面试精讲 Day 13:Redis Cluster集群设计与原理
  • 解决 Nginx 反代中 proxy_ssl_name 环境变量失效问题:网页能打开但登录失败