发布网友
共1个回答
热心网友
提示:ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'。出现此问题,前两天曾解决过,但今天再次尝试却未能成功。深入探索后,发现是由于mysql数据库的user表中存在用户名为空的匿名账户,导致使用root登录时实际上是以匿名账户身份。通过错误提示中的'@'localhost'可以发现此问题。
方法一:关闭mysql服务,使用mysqld_safe --skip-grant-table屏蔽权限,然后在新终端中使用mysql -u root mysql命令登录。在mysql提示符下,执行以下SQL语句:UPDATE user SET Password=PASSWORD('newpassword') where USER='root';FLUSH PRIVILEGES;确保执行完FLUSH PRIVILEGES以更新权限设置。最后使用\q退出mysql。
方法二:同方法一关闭mysql服务后,使用mysqld_safe --skip-grant-table屏蔽权限,接着在新终端中使用mysql -u root mysql命令登录。在mysql提示符下,执行以下SQL语句:delete from user where USER='';FLUSH PRIVILEGES;确保执行完FLUSH PRIVILEGES以更新权限设置。最后使用\q退出mysql。