Web项目打成战争包部署到tomcat时报MySQL拒绝访问用户& # 39;& # 39;根# 39;& # 39;@ # 39;& # 39;localhost # 39;

  

Web项目使用使用根账号根密码进行部署,通过Eclipse加载到Tomcat服务器可以发布成功,打成战争包放到Tomcat的webapps目录无法发布成功,报错:

  

 Web项目打成战争包部署到tomcat时报MySQL拒绝访问用户& # 39;& # 39;根# 39;& # 39;@ # 39;& # 39;localhost # 39;

  

jdbc.properties涉及Mysql配置:

  

 Web项目打成战争包部署到tomcat时报MySQL拒绝访问用户& # 39;& # 39;根# 39;& # 39;@ # 39;& # 39;localhost # 39;

  

错误很明显,与MySQL密码有关,但是两种方式部署项目使用的jdbc.properties配置文件是一样的,所以肯定不是密码不对引起的,只好找度娘,O (∩_∩) O哈哈~。

  

网上大部分帖通过运行mysql - u root - p命令登录时也会报这个错误,所以,我就尝试这种方法登录下,看是否存在同样的问题。

  

 Web项目打成战争包部署到tomcat时报MySQL拒绝访问用户& # 39;& # 39;根# 39;& # 39;@ # 39;& # 39;localhost # 39;

  

经查资料原因是根帐户默认不开放远程访问权限,所以需要修改一下相关权限。

  

  

方法一:

  

1。打开MySQL目录下的my.ini文件,在文件的最后添加一行“skip-grant-tables”,保存并关闭文件。(这个默认安装,我。ini在C: \ ProgramData \ MySQL \ MySQL服务器5.6)

  

 Web项目打成战争包部署到tomcat时报MySQL拒绝访问用户& # 39;& # 39;根# 39;& # 39;@ # 39;& # 39;localhost # 39;

  

2。重启MySQL服务。

  

3只通过命令行进入MySQL的本目录,输入“MySQL - u root - p”(不输入密码),回车即可进入数据库。(这个默认安装,本目录为:C: \ Program Files \ MySQL \ MySQL服务器5.6 \ BIN)
  4只执行“使用mysql;”,使用mysql数据库。
  5只执行“更新用户设置authentication_string=密码(“admin”),用户=案?“(修改根的密码)
  6只打开MySQL目录下的my.ini文件,删除最后一行的“skip-grant-tables”,保存并关闭文件。

  

前边的步骤,其实也可以直接通过mysql客户端工具修改根密码。(如图)

  

 Web项目打成战争包部署到tomcat时报MySQL拒绝访问用户& # 39;& # 39;根# 39;& # 39;@ # 39;& # 39;localhost # 39;

  

7只重启MySQL服务。
  8只在命令行中输入“mysql - u root padmin”,即可成功连接数据库。

  

完成以上步骤,修改jdbc.properties配置,Eclipse和战争包方式都可以成功部署到tomcat服务器。问题终于解决。

  

  

1。管理员登陆系统,停止mysql服务或者结束mysqld-nt进程;
  2. 进入命令行,来到mysql的安装目录。假设安装目录为d: \ mysql \, CMD进入命令行;
  3.运行D: \ MySQL程序文件\ \ 5.5 \ bin \ mysqld-nt MySQL服务器——skip-grant-tables启动MySQL,关闭权限的检查,
  4. MySQL运行D: \程序文件\ \ MySQL服务器5.5 \ bin \ mysqladmin - u根flush-privileges密码“newpassword”重设根密码;
  5. 重新启动mysql服务,

  

  

在解决问题当中,根据网上描述,通过mysql - u root - p密码方式访问mysql,结果报如下错误:

  

 Web项目打成战争包部署到tomcat时报MySQL拒绝访问用户& # 39;& # 39;根# 39;& # 39;@ # 39;& # 39;localhost # 39;

  

但是奇怪的是这条命令我输进去死活都不对,它都会要求再输入一遍密码,然后返回“未知错误1049(42000):数据库123456”

  

这个错误提示很明显,我们- p后面代的密码表的是数据库名称。但- p这个参数,p应该代表的是密码。百度后发现,- p和密码是连在一起的。

        mysql - h localhost - u root -ppassword      

- p和密码是连在一起的,赶紧一试,果然可以登陆!

  

,  Web项目打成战争包部署到tomcat时报MySQL拒绝访问用户& # 39;& # 39;根# 39;& # 39;@ # 39;& # 39;localhost # 39;

Web项目打成战争包部署到tomcat时报MySQL拒绝访问用户& # 39;& # 39;根# 39;& # 39;@ # 39;& # 39;localhost # 39;