为什么用户“root”@“localhost”的访问被拒绝(使用密码:是)

为什么用户“root”@“localhost”的访问被拒绝(使用密码:是)

围绕我遇到的错误,实际上有数百个问题:

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

都不起作用。我已经卸载并安装 mysql8 整整两天了。但一直都无果而终。

我甚至尝试安装 5.7 来避免麻烦,但又一次遇到了死路。

因此我回到了 MySQL 8。

我可以使用 root 用户和密码登录 phpmy admin。但不能在 putty/console 上登录。

有谁知道 mysql8 到底出了什么问题?

我正在使用 Ubuntu 22.04 和正在运行的最新 MySQL。

我获得访问权限的唯一方法是添加:

[mysqld]    
skip-grant-tables

行,但是当我更改密码或创建另一个用户并删除该行时。我仍然收到相同的错误。

我试过使用默认版本,mysqld.cfg也试过使用 5.7 版的旧 VPS 版本。又是一个死路。

我开始觉得这是故意设的死胡同。我已经尝试了一切办法。

任何想法都值得赞赏。

绑定地址如下:

bind-address        = 127.0.0.1
mysqlx-bind-address = 127.0.0.1

我尝试过使用0.0.0.0我的外部 IP,但没有任何效果。

我按照 Digital Ocean 安装说明进行操作,但每次都会遇到同样的问题。 https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-22-04

谢谢。

这是我尝试过的一些方法,但坦率地说,我已经尝试过这里和通过谷歌提出的许多解决方案,但最终还是走进了我一直提到的死胡同。

我尝试使用:(sudo mysql -u root这对我来说是目前的标准程序)。

尝试:从跳过授权表开始并重置密码等。

这是两种最常见的解决方案。

我最近尝试过:

sql UPDATE mysql.user SET plugin='unix_socket' WHERE user='root';
flush privileges;

在安全模式下启动 skipping-grant-tables 后,但最终出现了另一个解决方案无法解决的错误。插件unix_socket未加载到 MySQL 中。

也尝试过:mysql -u root -p -f - 没有运气。

还尝试过:按照几个教程多次删除并重新安装。Digital Ocean 和 LinuxBase,但她的是 MariaDB。我不想在将我的网站移到服务器上时引入其他可能的问题?如果这样做的话。

我还将系统从 18.04 升级到了 22.04,但同样的问题让我无法使用该系统。我必须恢复备份,因为从 5.7 升级后,mysql 无法连接。每次安装它时,它都能立即工作,我已经安装了十几次了。

我即将测试此安装教程,因为它包含其他教程未显示的一些小步骤:https://www.youtube.com/watch?v=SmgiRNoH52s

结束语:尽管上面的视频非常不同,但我还是设法对其进行了整理,以便我可以使用密码/root 用户在控制台中访问 MySQL。我可以使用相同的方式访问 phpmyadmin。但是,如果您看到我在该视频结尾处的评论。他继续使用 ALTER 命令将密码改回套接字而不是密码。这是为什么?在尝试之前,我现在正在备份,但不确定我是否应该将其改回套接字?任何建议都值得赞赏。感谢 @vidaro 的推动,因为我已经准备好跳下 * 悬崖了!

相关内容