mysql报错 Access denied for user 'root'@'localhost' (using password: YES)

时间:2021-10-11 02:51:27
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:943)

上面是错误的部分日志,如果出现了这个错误,

首先,保证你连接数据库的用户名密码都正确

其次,修改密码(假设你用root登陆),具体步骤如下:

1. 找到 mysql 的启动配置文件
    windows 下面是 my.ini ,linux 下面叫 my.cnf ,linux下面如果没有特别指定目录,则 my.cnf 一般存放于 /etc/ 目录下面。
2. 修改 mysql 配置文件
    在配置文件中找到 [mysqld] 一行,在下面添加 skip-grant-tables 后保存该文件并退出。
3. 重新启动 mysql 数据库
4. 重置 mysql 的 root 密码
    方法一:使用 “ 路径/mysql -h hostname(你主机的ip地址) -u root mysql” 命令登录 mysql ,运行命令修改密码:
                  update user set password=password('新的密码') where user='root';
                  flush privileges;
    方法二:使用 “ 路径/mysqladmin -h hostname -u rootpassword '新的密码' ”直接重置root的密码。
5. 再次修改 mysql 配置文件
    将第2步添加的 skip-grant-tables 这句参数删除。
6. 再次重新启动 mysql 数据库
 
现在你应该可以使用新密码正常登录了。 

PS:我机器按照以上操作可以正常登陆了,但是以前的数据库都丢失了,就剩下了三个information_schema、mysql、performance_schema,不知道什么原因