今天在给一台电脑配置 MySQL 时, 使用 root 账户创建了一个新的用户, 设置了密码并指定了允许登录的 Host, 同时授权了所有权限。但是却一直无法使用这个账户登录到 MySQL 里
尝试使用该账户登录时, 出现了以下错误
ERROR 1045 (28000): Access denied for user 'laravel'@'localhost' (using password: YES)
问题分析
经过多次尝试, 我找了一个解决方案
发现 MySQL 中默认存在一个用户名为空的账户。在本地环境下, 可以不用输入账号密码即可登录到 MySQL 中。而因为这个账户的存在, 导致了使用密码登录无法正确登录。
解决方案
以 root 账户登录 MySQL
mysql -u root
选择 mysql 库
use mysql;
删除用户名为空的账户
delete from user where User='';
刷新权限
flush privileges;
完成上述步骤后, 就可以使用新创建的用户及密码成功登录 MySQL 了
原文