宝塔部署war包项目,出现SQLException: Access denied for user

新公司使用的是宝塔来部署项目,war包。在部署运行时遇到了SQLException: Access denied for user 'xxx@xxxxx'  (using password:yes)

重装mysql无果之后。就只能慢慢解决,分享下我的解决过程。

 

# 一. 错误原因

正常来讲,使用navicat等连接工具 访问/创建 数据库时,就会遇到这种错误。错误原因无外乎这两种。

 

## 1. 访问的ip,账号,密码输入错误 

正常来讲项目遇到这种错误,检查下ip填写是否正确,账号密码有没有带空格,就能解决这种问题。

 

## 2. 账户权限不足

如果上述方法尝试均未能解决,那就要进到服务器看看账户权限了。

 

### 1)查看mysql的所有用户

使用 mysql -u root -p 命令,再输入密码登录Mysql。

SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;  使用sql查询user表中的用户信息

如图,查看自己的账号的权限。%是全部权限。如果是没有权限可以赋值给这个用户。

PS: 我遇到的问题是,这个mysql 的%权限竟然不包括 localhost 本地访问权限。我要在安装这个mysql的本地去访问它,就必须单独对其单独赋值。

原因暂不明,猜测是版本问题。重装过依旧存在这种情况。

### 2)查看权限

show grants for '用户名'@'%'; 查看用户权限 ,看看用户是否有操作权限。

### 3)赋予权限

grant all privileges on main_db.* to 用户名@'%' identified by '表名'; 如果没有,则赋予其相应数据库的操作权限  。

flush privileges; 赋予完权限后,别忘记刷新。然后再次查看这个用户的权限,就知道有没有执行成功了。

PS:友情提示每一个 命令/sql  都要注意带分号,

 

最普遍的还是,数据库地址,账号密码不正确。大家多多细心。

 

posted @ 2020-05-18 14:24  shineAnthony  阅读(614)  评论(0编辑  收藏  举报