错误 1045 (28000): 用户 'root'@'localhost' 访问被拒绝(使用密码:YES)

che*_*014 4 server mysql permissions root password

我知道有些用户可能会说这是重复的,但我认真地梳理了半天以上的答案和互联网上的答案,我感到非常沮丧,我要爆炸了。

现在治疗解释已经完成,我已经从 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 的次数,因为这种颈部疼痛是一个错误。

小智 10

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

验证此行是否存在:

plugin-load-add = auth_socket.so
Run Code Online (Sandbox Code Playgroud)

然后转到MariaDB

sudo mysql -u root
Run Code Online (Sandbox Code Playgroud)

并进行这些修改:

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

我没有访问权限mysqlworkbench,但是在我应用此解决方案后,一切都运行良好...


che*_*014 5

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

很高兴我在经历了这么多痛苦之后发现了这一点——考虑到 MySQL 已经投入生产了多少年,这还没有被确定为一个错误,真是令人惊讶。

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

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

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

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

上述内容应该是朝着确保 MySQL 服务器安全的正确方向迈出的一步。