mysql报错 Access denied for user 'root'@'localhost' (using password: YES)-阿里云开发者社区

开发者社区> 数据库> 正文

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

简介: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)<br><span style="white-space:pre"></span>at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)<br>
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,不知道什么原因

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章