mysql登录报错error1045_mysql创建登录报错ERROR1045(28000)

最近,创建了一个用户。但是登录时出现错误提示:

ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)

网上查找了一下;发现了出现问题的原因。数据库安装时,会创建有一个user为空的匿名用户;而这user为空它可以匹配任何字符。如下图(第四个):

af2165c40623212a09cf20f35933d21d.png

而本人创建的用户为:

Mysql> grant  all  on  itcase.*  to  ‘test‘@‘%‘  identified  by  ‘123456‘;

结果登录时出现了error 1045(280000)提示。创建命令中通配符 % 可以匹配所有字符。

问题就清晰了,当我输入登录命令时:

C:\Users\Administrator>mysql  -utest  -p123456

系统会去寻找匹配字段,用户 test 他的 host 定义为 % ,所有上图 host 字段中任何一项都可以。再到匹配 user 字段, 这时 test 会匹配到第四个用户名为空的字段 。也就是说我们登录的是user为空的匿名用户,而非我们想要的 test 用户;密码验证错误。所以登录不了;

原因找到了,解决方法就是把匿名用户删除就行了。匿名用户是系统自行给予的,而且本身没有设置密码,可以随便登录;从安全方面看,删除匿名用户也可提高数据库的安全性。

用root用户登录mysql;

Mysql> use mysql;

Database Changed

Mysql>delete from user where user=‘‘;

Query OK, 2 rows affected (0.17 sec)

Mysql>exit

OK!到此问题解决。

原文:http://codingyang.blog.51cto.com/11368359/1759352

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL登录报错 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 是由于MySQL拒绝了使用root用户在本地主机上登录的请求,原因可能是密码错误或者没有设置密码。这个错误通常出现在以下几种情况下: 1. 密码错误:如果你尝试使用root用户登录MySQL时没有输入密码,或者输入的密码不正确,就会出现这个错误。请确保输入的密码是正确的。 2. 没有设置密码:如果你尝试使用root用户登录MySQL时没有设置密码,也会出现这个错误。在某些情况下,MySQL默认是没有设置root用户的密码的。你可以尝试使用空密码登录,或者通过修改MySQL配置文件来设置密码。 解决这个问题的方法有以下几种: 1. 使用正确的密码:确保你输入的密码是正确的。如果你不确定密码是否正确,可以尝试重置root用户的密码。 2. 设置密码:如果你尝试使用root用户登录时没有设置密码,可以通过以下步骤来设置密码: - 打开命令行或终端窗口,并以管理员身份运行。 - 输入以下命令来连接到MySQL服务器:mysql -u root - 输入以下命令来设置root用户的密码:ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; (将new_password替换为你想要设置的新密码) - 输入以下命令来刷新权限:FLUSH PRIVILEGES; 3. 重置密码:如果你忘记了root用户的密码,可以通过以下步骤来重置密码: - 停止MySQL服务。 - 打开命令行或终端窗口,并以管理员身份运行。 - 输入以下命令来启动MySQL服务并跳过权限验证:mysqld_safe --skip-grant-tables & - 连接到MySQL服务器:mysql -u root - 输入以下命令来重置root用户的密码:UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root'; (将new_password替换为你想要设置的新密码) - 输入以下命令来刷新权限:FLUSH PRIVILEGES; - 退出MySQL并重新启动MySQL服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值