我的局域网房间内有一台服务器。我刚刚重启了服务器,现在当我尝试连接 mysql 时,出现了以下错误消息
mysql -u root -p -h localhost
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
据我所知,我没有更改任何设置,并且在重新启动计算机之前能够登录和退出。有什么建议吗?我知道在 stackoverflow 和 serverfault 上也报告了同样的错误消息,但在我读到的问答中,他们没有连接到本地主机。
答案1
步骤大致相同;在安全模式下重新启动 MySQL,使用 root 身份(无密码)登录,然后执行密码重置。然后进行数据完整性检查。
答案2
以下是我解决这个问题所遵循的步骤列表(来自http://24x7servermanagement.com/blog/?p=44)
#service mysqld stop or
#killall mysqld
#/usr/bin/mysqld_safe –skip-grant-tables&
#/usr/bin/mysql
mysql>use mysql;
使用以下命令更改 MySQL 管理员(root)密码
mysql>update user set password=password(‘wsarxaffa’) where user=’root’ and host=’localhost’;
刷新权限,以便一切都将生效(它将删除服务器设置的所有权限)
mysql>flush privileges;
mysql>quit
/etc/init.d/mysqld stop
/etc/init.d/mysqld start
mysql -u root -p
答案3
我在 ubuntu 上也遇到了这个问题。就我而言,原因是 /tmp 文件夹无法访问,并且安装过程在创建 root 用户时默默失败。我会卸载 mysql,为 /tmp 提供正确的权限,然后重新安装 mysql。
答案4
经过 3 天的尝试,我发现 mysql 网站上有一个适用于 Win(x64) 的扩展。它对我有用。从原始安装程序的 bin 文件夹中排除所有内容,然后从扩展中复制文件。