关于Mysql报错java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)的问题

@[TOC](关于Mysql报错java.sql.SQLException: Access denied for user ‘root’@‘localhost’ (using password: YES)的问题)

首先说一下遇到的问题

我在运行java程序的时间莫名其妙的报错报错信息较长,我就把主要的粘贴过来
java.sql.SQLException: Access denied for user ‘root’@‘localhost’ (using password: YES),然后我百度了很多,发现大部分都是一样的,试了之后完全没卵用。

解决

没办法接着找吧,找了半天也试了很多,最后解决了。解决办法如下。
1.首先要把Mysql服务停掉,有的说是什么要停掉服务,修改init文件,完全没必要,直接把mysql服务停掉;
2. 然后打开cmd,输入命令 mysqld --skip-grant-tables 然后在另外开一个cmd窗口。输入mysql -u root -p,然后输入密码的时候直接敲回车,不要输密码,不要输密码,不要输密码
3. 重点来了,首先我们要输入 use mysql;命令 这样才能在mysql库里面找到user表
4. 在输入命令select host,user,password from user;查看user表中的host地址和user用户名。出现问题的应该比这个图要多几个host和user。
在这里插入图片描述
5.根据上表查出来的信息,只保留localhost,其他的host删除delete from user where host <> 'localhost';
6. 然后修改密码update user set password=password('1234');
7. 刷新缓冲,使修改生效。flush privileges
8. 退出,重新登录 quit;
9. mysql -uroot -p1234
到这里我的问题就解决了,不知道大家的一样不一样。
参考博客 https://blog.csdn.net/hgq_csdn/article/details/53728451

根据提供的引用内容,报错信息"java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)"表示用户访问被拒绝,原因是密码不正确。这个错误通常发生在连接数据库时,用户提供的密码与数据库配置中的密码不匹配。 解决这个问题的方法是确保在连接数据库时提供正确的密码。可以检查以下几个方面: 1. 检查数据库配置文件:根据引用[2]中提到的yml文件,确保在配置文件中正确地设置了数据库的用户名和密码。 2. 检查数据库用户权限:确保数据库用户具有足够的权限来访问数据库。可以通过在数据库中执行适当的授权语句来授予用户所需的权限。 3. 检查数据库连接代码:确保在连接数据库时使用了正确的用户名和密码。可以检查连接代码中的用户名和密码是否与数据库配置文件中的相匹配。 4. 检查数据库密码是否正确:如果以上步骤都没有问题,可以尝试重置数据库密码,并确保在连接数据库时使用新密码。 下面是一个示例的Java代码,用于连接数据库并处理可能出现的访问被拒绝的异常: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DatabaseConnection { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/mydatabase"; String username = "root"; String password = "your_password"; try { Connection connection = DriverManager.getConnection(url, username, password); // 连接成功,可以进行数据库操作 } catch (SQLException e) { System.out.println("Failed to connect to the database: " + e.getMessage()); } } } ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值