idea中运行yml文件连接数据库 出现“Access denied for user ‘root‘@‘localhost‘ (using password: YES)” 问题
·
项目场景:
提示:这里简述项目相关背景:
idea中运行yml文件连接数据库 出现“Access denied for user ‘root‘@‘localhost‘ (using password: YES)” 问题
问题描述
提示:这里描述项目中遇到的问题:
idea中运行yml文件连接数据库出现如下错误:
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:130)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:815)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:438)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:189)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1682)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1803)
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2928)
原因分析:
提示:这里填写问题的分析:
出错原因
using password: NO:表示输入没有输入密码就尝试登陆了
using password: YES:表示输入了密码,但密码错误
检查:mysql -u root -p
但是我们检查到数据库的用户名和密码都没错,连接数据库报错是哪的问题呢?
原因:在yml中数字以0,1开头的,自动被认为是其他进制,而yml只支持二进制,八进制和十六进制。
解决方案:
提示:这里填写该问题的具体解决方案:
法一:在密码数字上加上双引号""
spring:
datasource:
url: jdbc:mysql://localhost:3306/mybatis_plus?useSSL=false&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&serverTimezone=GMT%2B8&characterEncoding=utf-8
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: "000000"
法二:改密码,用SET PASSWORD命令
方式一
登录mysql执行以下语句
mysql -u root -p
按回车确认, 如果安装正确且 MySQL 正在运行, 会得到以下响应:
Enter password:
若密码存在, 输入密码登录, 不存在则直接按回车登录。登录成功后你将会看到 Welcome to the MySQL monitor… 的提示语。
使用以下SQL语句更改用户密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
出现Query OK, 0 rows affected (0.36 sec),表示修改成功。
方式二
通过mysqladmin修改密码
root 用户可以使用 mysqladmin 命令来修改密码,mysqladmin 的语法格式如下:
mysqladmin -u username -h hostname -p password "newpwd"
语法参数说明如下:
- usermame 指需要修改密码的用户名称,在这里指定为 root 用户;
- hostname 指需要修改密码的用户主机名,该参数可以不写,默认是 localhost;
- password 为关键字,而不是指旧密码;
- newpwd 为新设置的密码,必须用双引号括起来。如果使用单引号会引发错误,可能会造成修改后的密码不是你想要的。

| 警告:由于密码将以明文形式发送到服务器,请使用ssl连接以确保密码安全。 |
提示的这部分就不用管了。
更多推荐




所有评论(0)