MYSQL ERROR 1045 (28000): Access denied for user (using password: YES)问题的解决
程序员文章站
2023-11-26 20:26:04
第一种方法: 推荐错误描述: mysql中添加用户之后可能出现登录时提示error 1045 (28000): access denied for user的错误. 原因分...
第一种方法: 推荐
错误描述: mysql中添加用户之后可能出现登录时提示error 1045 (28000): access denied for user的错误.
原因分析: 在mysql.user表中可能出现user为空的记录,如:
mysql> select host,user from user;
+------------------+------+
| host | user |
+------------------+------+
| % | test |
| localhost | |
| localhost | root |
+------------------+------+
3 rows in set (0.00 sec)
解决 办法: 删除这些为空的用户或者更新为其他用户名
删除user.user中值为null的,或更新null为test
1)delete from user where user is null
2)update user set user='test' where user is null
意外的情况: 如果上述方法没有效果,依然出现空用户,则可以利用图形化用户client删除.
第二种方法:linux下
开场白:解决linux问题是一种乐趣,当然,能遇到问题就是上天赐的享受幸福的机会。
这次使用的是mandriva2008spring。
因为要搞一个项目,所以需要安装mysql,以往安装mysql都是非常顺利的,尤其mysql提供的rmp包,只需双击下就可以搞定~但不知道什么时候,mysql error 1045 (28000): access denied for user (using password: yes),这个拒绝访问问题变得非常广泛。
百度了一下,没有现成的解决方法,唯有找出其问题所在了。
解决问题思路:
第一步,先使用跳过受权表访问,命令如下:mysqld_safe --user=mysql --skip-grant-tables --skip-networking & (当然,在这之前,先停止mysql服务的运行)。
第二步,mysql -uroot mysql 登录mysql。
第三步,访问mysql数据库下的user表。在我的机器上,mysql> select * from user; 得到的,竟然是
empty set (0.00 sec)。这说明了,我的mysql没有任何可以访问的用户。知道了这问题所在,解决起来就简单了。
第四步,mysql> insert into user(host, user, password, select_priv, insert_priv, update_priv) values ('localhost', 'username', password(‘yourpassword'), 'y', 'y','y');
query ok, 1 row affected, 3 warnings (0.00 sec)
返回成功,没问题。嘿嘿~~~就这么简单。
第五步,测试,再重启下mysql服务,正常登录,成功!!!
提示:mysql系统中的mysql数据库,存储的是系统数据,像这里的user表存储的是用户信息及其访问权限,还有其他,例如你要新建一个数据库mydb,这数据库有用户me管理的话,mysql数据库里面的db表就会存储相关信息。废话步多说了。
下面是windows 的解决方法:
但如果我们用虚拟主机管理系统开启的用户,而且用户数比较多的时候,好像也不是好办法。
我使用重新安装了mysql,然后进入虚拟主机,逐个删除,重新开数据库,操作之前一定要备份好原来的data目录,最后覆盖下空间数据库就可以了。
错误描述: mysql中添加用户之后可能出现登录时提示error 1045 (28000): access denied for user的错误.
原因分析: 在mysql.user表中可能出现user为空的记录,如:
mysql> select host,user from user;
+------------------+------+
| host | user |
+------------------+------+
| % | test |
| localhost | |
| localhost | root |
+------------------+------+
3 rows in set (0.00 sec)
解决 办法: 删除这些为空的用户或者更新为其他用户名
删除user.user中值为null的,或更新null为test
1)delete from user where user is null
2)update user set user='test' where user is null
意外的情况: 如果上述方法没有效果,依然出现空用户,则可以利用图形化用户client删除.
第二种方法:linux下
开场白:解决linux问题是一种乐趣,当然,能遇到问题就是上天赐的享受幸福的机会。
这次使用的是mandriva2008spring。
因为要搞一个项目,所以需要安装mysql,以往安装mysql都是非常顺利的,尤其mysql提供的rmp包,只需双击下就可以搞定~但不知道什么时候,mysql error 1045 (28000): access denied for user (using password: yes),这个拒绝访问问题变得非常广泛。
百度了一下,没有现成的解决方法,唯有找出其问题所在了。
解决问题思路:
第一步,先使用跳过受权表访问,命令如下:mysqld_safe --user=mysql --skip-grant-tables --skip-networking & (当然,在这之前,先停止mysql服务的运行)。
第二步,mysql -uroot mysql 登录mysql。
第三步,访问mysql数据库下的user表。在我的机器上,mysql> select * from user; 得到的,竟然是
empty set (0.00 sec)。这说明了,我的mysql没有任何可以访问的用户。知道了这问题所在,解决起来就简单了。
第四步,mysql> insert into user(host, user, password, select_priv, insert_priv, update_priv) values ('localhost', 'username', password(‘yourpassword'), 'y', 'y','y');
query ok, 1 row affected, 3 warnings (0.00 sec)
返回成功,没问题。嘿嘿~~~就这么简单。
第五步,测试,再重启下mysql服务,正常登录,成功!!!
提示:mysql系统中的mysql数据库,存储的是系统数据,像这里的user表存储的是用户信息及其访问权限,还有其他,例如你要新建一个数据库mydb,这数据库有用户me管理的话,mysql数据库里面的db表就会存储相关信息。废话步多说了。
下面是windows 的解决方法:
但如果我们用虚拟主机管理系统开启的用户,而且用户数比较多的时候,好像也不是好办法。
我使用重新安装了mysql,然后进入虚拟主机,逐个删除,重新开数据库,操作之前一定要备份好原来的data目录,最后覆盖下空间数据库就可以了。
推荐阅读
-
ERROR 1045 (28000): Access denied for user root@localhost (using password: NO)
-
MYSQL ERROR 1045 (28000): Access denied for user (using password: YES)问题的解决
-
新装MySql后登录出现root帐号提示mysql ERROR 1045 (28000): Access denied for use的解决办法
-
解决mysql ERROR 1045 (28000)-- Access denied for user问题
-
win10下MySQL 8.0登录Access denied for user‘root’@‘localhost’ (using password: YES)问题的解决方法
-
Linux连接mysql报错:Access denied for user ‘root’@‘localhost’(using password: YES)的解决
-
MySQL密码正确却无法本地登录-1045 Access denied for user 'root'@'localhost' (using password:YES
-
Linux连接mysql报错:Access denied for user ‘root’@‘localhost’(using password: YES)的解决
-
java访问数据库被拒绝,不能连接数据库ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
-
Linux连接mysql报错:Access denied for user ‘root’@‘localhost’(using password: YES)的解决方法