错误 1045(28000):拒绝用户“root”@“localhost”访问(使用密码:是)

错误 1045(28000):拒绝用户“root”@“localhost”访问(使用密码:是)

我知道有些用户可能会说这是重复的,但说真的,我已经梳理了这些答案和互联网上的内容超过半天的时间,我非常沮丧,我快要爆炸了。

现在治疗解释已经完成,我已经从 Ubuntu 12.04 LTS 上的 Ubuntu 存储库安装了 MySql Server 和 MariaDb 10,并在安装时输入了 root 密码[当出现粉红色屏幕并提示输入 root 密码时],安装过程就像刀切黄油一样顺利。

现在,真正的挫败始于以下两种情况:

  1. 当我进入sudo /usr/bin/mysql_secure_installation命令并提示输入 root 密码

或者

2.当我进入mysql -u 根 -p命令并提示输入密码。

请帮帮我,我真的需要这方面的帮助——我已经记不清有多少次因为这个麻烦的错误而卸载并重新安装 MySQL 或 MariaDb 了。

答案1

检查文件:/etc/mysql/mariadb.conf.d/mysqld.cnf

验证此行是否存在:

plugin-load-add = auth_socket.so

然后去玛拉雅数据库

sudo mysql -u root

并做以下修改:

MariaDB [(none)]>use mysql;
MariaDB [(none)]>update user set plugin=' ' where User='root';
MariaDB [(none)]>flush privileges;
MariaDB [(none)]>exit

我无法访问mysqlworkbench,但在应用此解决方案后,一切都顺利进行......

答案2

我想我可能已经解决了这个问题——它与长密码有关。我认为这应该作为一个错误报告给 MySQl 和 MariaDB 开发人员,因为在安装时您可以创建一个超过 100 个字符的密码,但是当您尝试登录正在生产中的 MySQl 或 MariaDB 时,您会收到上述错误。

很高兴我在经历了这么多痛苦之后终于解决了这个问题——考虑到 MySQL 已经投入生产多少年了,这还没有被认定为一个错误,这真的很令人惊讶。

因此,基本上,一个解决方案是通过以下步骤来解决上述问题:

  1. 在非生产服务器上以空白密码开始,看看是否有效

  2. 如果您成功完成第 1 步,则通过键入以下命令继续保护您的 mysql 安装:sudo /usr/bin/mysql_secure_installation并尝试输入更复杂的密码 - 至少 8 个字符的小写字母、数字、符号和大写字母的组合就可以了。

  3. 我建议从 8 开始,然后向上移动,直到达到您可以输入的字符数量的上限。

以上内容应该是确保您的 MySQL 服务器安全的正确一步。

答案3

在终端中尝试此命令:

mysqladmin -u root -pcurrentpassword password 'newpassword'

然后输入:

mysql -u root -pnewpassword

答案4

最好的答案是这里

它解释了发生了什么。它解释了为什么你不应该禁用该插件。它解释了如何解决这个问题(使用 sudo 登录,创建一个非 root 的新超级用户帐户)。

注意解决方案大卫·莱昂纳多重启后无法继续存在。

相关内容