![错误 1045(28000):拒绝用户“root”@“localhost”访问(使用密码:是)](https://linux22.com/image/852461/%E9%94%99%E8%AF%AF%201045%EF%BC%8828000%EF%BC%89%EF%BC%9A%E6%8B%92%E7%BB%9D%E7%94%A8%E6%88%B7%E2%80%9Croot%E2%80%9D%40%E2%80%9Clocalhost%E2%80%9D%E8%AE%BF%E9%97%AE%EF%BC%88%E4%BD%BF%E7%94%A8%E5%AF%86%E7%A0%81%EF%BC%9A%E6%98%AF%EF%BC%89.png)
我知道有些用户可能会说这是重复的,但说真的,我已经梳理了这些答案和互联网上的内容超过半天的时间,我非常沮丧,我快要爆炸了。
现在治疗解释已经完成,我已经从 Ubuntu 12.04 LTS 上的 Ubuntu 存储库安装了 MySql Server 和 MariaDb 10,并在安装时输入了 root 密码[当出现粉红色屏幕并提示输入 root 密码时],安装过程就像刀切黄油一样顺利。
现在,真正的挫败始于以下两种情况:
- 当我进入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 步,则通过键入以下命令继续保护您的 mysql 安装:sudo /usr/bin/mysql_secure_installation并尝试输入更复杂的密码 - 至少 8 个字符的小写字母、数字、符号和大写字母的组合就可以了。
我建议从 8 开始,然后向上移动,直到达到您可以输入的字符数量的上限。
以上内容应该是确保您的 MySQL 服务器安全的正确一步。
答案3
在终端中尝试此命令:
mysqladmin -u root -pcurrentpassword password 'newpassword'
然后输入:
mysql -u root -pnewpassword