ERROR 1045(28000):用户’root’@’localhost’拒绝访问(使用密码:YES)

我知道有些用户可能会说这是一个重复,但严重的是我已经梳理了答案和互联网上超过半天的答案,我很沮丧,我会爆炸。

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

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

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

要么

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

请我真的需要帮助 – 我已经失去了我必须卸载并重新安装MySQL或MariaDb的次数,因为颈部疼痛是错误的。

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

validation此行是否存在:

 plugin-load-add = auth_socket.so 

然后去MariaDB

 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 ,但在我应用这个解决方案后,一切都很好…

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

很高兴我在经历了这么多的痛苦之后想到了这一点 – 令人惊讶的是,考虑到MySQL已经生产了多少年,这还没有被认定为一个错误。

所以基本上一个决议是通过以下步骤来解决上述问题:

  1. 在非生产服务器上以空白密码开头,如果它有效

  2. 如果您在步骤1中成功,则通过键入以下命令继续保护您的mysql安装: sudo / usr / bin / mysql_secure_installation并尝试输入更复杂的密码 – 小写字母,数字,符号和大写字母的组合至少为8字符应该没问题。

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

以上应该是确保MySQL服务器安全的正确方向。

在终端中尝试此命令:

 mysqladmin -u root -pcurrentpassword password 'newpassword' 

然后,键入:

 mysql -u root -pnewpassword 

最好的答案就在这里

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

请注意, david-leonardo的 此解决方案无法在重新启动后继续存在。