JavaWeb项目MySQL问题:Host一会使用%一会使用机器名

下午遇到一个非常好玩的问题,在这里记一下

一、问题描述

  • 环境说明:项目采用现在的主流的Maven继承方式,我称之为PCBW结构,P模块主要负责项目中所有依赖的jar的版本控制问题(Parent),C模块负责DAO和Service层的数据处理(Core),B就是后台运营展示系统(Boss),D就是前台服务系统(Web);统一使用Maven管理;项目部署在阿里云服务器;

  • 具体问题:使用一个Maven命令打包所有的Parent下的所有项目(clean install -Dmaven.test.skip=true -Pbeta),上线打包之后出现报错(@之后的机器名字符串我已经修改过),但是同事使用老的打包方式,即一个项目一个项目的clean(分别从Parent开始,对Core,Mgr,Web模块进行clean,install),上传数据库可以访问:

    • 报错内容如下
      java.sql.SQLException: Access denied for user 'root'@'iZsdvn345osev22b5sG' (using password: YES)
      
    • 经查:
      1. iZsdvn345osev22b5sG是服务器的名称;
      2. 数据库中只有%用户设置了密码,其他空白;
  • 初步判定:

    • 使用Maven打包的方式(clean install -Dmaven.test.skip=true -Pbeta),服务器连接的时候host使用的是机器名称,即上面那段字符串(iZsdvn345osev22b5sG);而使用Maven自带的单个命令打包的方式(分别从Parent开始,对Core,Mgr,Web模块进行clean,install)上传,就可以访问到数据库,这个时候使用的Host是%,因为当时只有这个账户有密码;
    • 问题来了:当问数据库的时候,到底是Host什么时候使用%,什么是时候使用<computer-name>,什么是时候使用127.0.0.1等等,貌似我们开发的时候不会配置这个,但是有一个地方会配置,那就是设置用户访问权限,但是使用show grants;查看后也没有得到什么启示
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,975评论 6 342
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,027评论 19 139
  • 简介 概述 Maven 是一个项目管理和整合工具 Maven 为开发者提供了一套完整的构建生命周期框架 Maven...
    闽越布衣阅读 4,376评论 6 39
  • Maven编译代码的相关命令 第一、main目录下的主代码编写完毕后,使用Maven进行编译,在项目根目录下运行命...
    加油小杜阅读 1,272评论 0 2
  • 最近两天看了时间的朋友演讲,里面一个小部分:超级用户思维。让我觉得印象很深刻,即我不仅关心我有多少用户,还关心有多...
    张涛学写作阅读 355评论 0 2