MySQL 失败:mysql“错误 1524 (HY000):插件‘auth_socket’未加载”

2024-10-23 08:47:00
admin
原创
237
摘要:问题描述:我的本地环境是:全新 Ubuntu 16.04使用 PHP 7已安装 MySQL 5.7sudo apt-get install mysql-common mysql-server 当我尝试登录 MySQL(通过 CLI)时:mysql -u root -p 我遇到了一个包含 3 个步骤的循环问题。...

问题描述:

我的本地环境是:

  • 全新 Ubuntu 16.04

  • 使用 PHP 7

  • 已安装 MySQL 5.7

sudo apt-get install mysql-common mysql-server

当我尝试登录 MySQL(通过 CLI)时:

mysql -u root -p

我遇到了一个包含 3 个步骤的循环问题。

  1. 首先是一些插座问题

ERROR 2002 (HY000): Can't connect to local MySQL server through    socket '/var/run/mysqld/mysqld.sock'

解决方案:重新启动电脑。

这导致了另一个错误:

  1. 拒绝访问

ERROR 1698 (28000): Access denied for user 'root'@'localhost'.

可能存在问题?用户密码错误root

解决方案:按照本 RackSpace 教程重置 root 密码。密码正确且套接字正常工作后,会出现最后一个错误。

  1. 身份验证插件不正确

mysql "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded"

在这里我停了下来,或者以某种方式再次回到第 1 步。


解决方案 1:

我找到解决办法了!

在步骤2)重置root密码时,也将auth插件更改为mysql_native_password

use mysql;
update user set authentication_string=PASSWORD("") where User='root';
update user set plugin="mysql_native_password" where User='root';  # THIS LINE

flush privileges;
quit;

这让我能够成功登录!


完整代码解决方案

1. 首先,运行这些 bash 命令

sudo /etc/init.d/mysql stop # stop mysql service
sudo mysqld_safe --skip-grant-tables & # start mysql without password
# enter -> go
mysql -uroot # connect to mysql

2. 然后运行 ​​mysql 命令 => 手动复制粘贴到 CLI

use mysql; # use mysql table
update user set authentication_string=PASSWORD("") where User='root'; # update password to nothing
update user set plugin="mysql_native_password" where User='root'; # set password resolving to default mechanism for root user

flush privileges;
quit;

3. 运行更多 bash 命令

sudo /etc/init.d/mysql stop 
sudo /etc/init.d/mysql start # reset mysql
# try login to database, just press enter at password prompt because your password is now blank
mysql -u root -p 

4. 套接字问题(来自您的评论)

当您看到套接字错误时,社区提供了两种可能的解决方案:

sudo mkdir -p /var/run/mysqld; sudo chown mysql /var/run/mysqld
sudo mysqld_safe --skip-grant-tables &

(感谢@Cerin)

或者

mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqld  

(感谢@Peter Dvukhrechensky)


盲路和可能的边缘错误

使用 127.0.0.1 而不是 localhost

mysql -uroot # "-hlocalhost" is default

可能导致“文件丢失”或 slt 错误。

mysql -uroot -h127.0.0.1

效果更好。

跳过套接字问题

我找到了很多方法来创建mysqld.sock文件、更改访问权限或对其进行符号链接。但问题终究不是出在这里。

跳过my.cnf文件

这个问题也不存在。如果你不确定,这可能会对你有帮助。

解决方案 2:

您可以尝试如下方法,它对我有用。

启动服务器:

sudo service mysql start

现在,转到 sock 文件夹:

cd /var/run

备份袜子:

sudo cp -rp ./mysqld ./mysqld.bak

停止服务器:

sudo service mysql stop

恢复袜子:

sudo mv ./mysqld.bak ./mysqld

启动mysqld_safe:

 sudo mysqld_safe --skip-grant-tables --skip-networking &

初始化 mysql shell:

 mysql -u root

更改密码:

因此,首先选择数据库

mysql> use mysql;

现在输入以下两个查询:

mysql> update user set authentication_string=password('123456') where user='root';
mysql> update user set plugin="mysql_native_password" where User='root'; 

现在,一切都会好起来的。

mysql> flush privileges;
mysql> quit;

检查:

mysql -u root -p

完毕!

N.B, After login please change the password again from phpmyadmin

现在检查hostname/phpmyadmin

Username: root

Password: 123456

有关更多详细信息,请查看如何在 Ubuntu 中重置忘记的 phpmyadmin 密码

解决方案 3:

mysql命令默认使用 UNIX 套接字连接到 MySQL。

如果您使用 MariaDB,则需要在服务器端加载Unix Socket Authentication Plugin 。

您可以通过如下方式编辑[mysqld]配置来完成此操作:

[mysqld]
plugin-load-add = auth_socket.so

根据发行版的不同,配置文件通常位于/etc/mysql//usr/local/etc/mysql/

如果unix_socket=OFF在同一部分设置,请将其更改为以启用它unix_socket=ON,否则此修复不适用。

解决方案 4:

对于 Ubuntu 18.04 和 mysql 5.7

  • 步骤1:sudo mkdir /var/run/mysqld;

第 2 步:sudo chown mysql /var/run/mysqld

步骤 3:sudo mysqld_safe --skip-grant-tables&退出(如果卡住则使用退出)

无需密码即可登录mysql

  • 步骤4:sudo mysql --user=root mysql

第 5 步:SELECT user,authentication_string,plugin,host FROM mysql.user;

第 6 步:`ALTER USER 'root'@'localhost' IDENTIFIED WITH
mysql_native_password BY 'root'`

现在登录

  • mysql -u root -p <root>

解决方案 5:

您可以尝试以下步骤:

首先停止 Mysql 服务
sudo /etc/init.d/mysql stop

无需密码即可以 root 身份登录
sudo mysqld_safe --skip-grant-tables &

登录mysql终端后你应该需要执行更多命令:

use mysql;

UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';

flush privileges;

sudo mysqladmin -u root -p -S /var/run/mysqld/mysqld.sock shutdown

重新启动 mysql 服务器后,如果仍然遇到错误,则必须访问:重置 MySQL 5.7 root 密码 Ubuntu 16.04

解决方案 6:

尝试一下:

sudo mysql_secure_installation

在 Ubuntu 18.04 中工作。

解决方案 7:

以防有人犯和我一样的错误来到这里:

  1. 切换到plugin="mysql_native_password"临时的。执行我的任务。

  2. 尝试切换回“auth_socket”插件,但错误地引用了它,plugin="auth_socket"导致mysql "ERROR 1524 (HY000): Plugin 'auth_socket' is not loaded"

  3. 由于缺乏登录来修复此错误的方法,我被迫停止 mysql 并使用mysql_safe绕过​​身份验证,以便切换到适当的插件plugin="unix_socket"

如果有人收到原始海报的错误消息,希望这可以节省一些时间,但真正的原因是插件名称错误,而不是实际上缺少“auth_socket”插件本身的存在,根据MariaDB 文档:

在MariaDB 10.4.3及更高版本中,默认安装unix_socket身份验证插件,并默认由'root'@'localhost'用户帐户使用。

解决方案 8:

我尝试过并且有效

use mysql; # use mysql table
update user set authentication_string="" where User='root'; 

flush privileges;
quit;

解决方案 9:

它对我有用(ubuntu 22.04):

1)停止并删除mysql及相关服务

sudo kill $(pgrep mysql)
sudo apt-get remove --purge mysql-*
sudo rm -rf /etc/mysql

2)下载 APT 仓库
https://dev.mysql.com/downloads/repo/apt/

3)按照指南
https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/

指南中的候选名单:

sudo dpkg -i mysql-apt-config_0.8.24-1_all.deb

在对话框中保留原有设置

sudo apt-get update
sudo apt-get install mysql-server

它应该是一个对话框:设置 ROOT 密码并保留身份验证设置。我尝试更改它并收到身份验证错误。

最后

sudo apt-get update
sudo apt-get install mysql-workbench-community

希望它能节省你的时间,祝你好运:)

解决方案 10:

在 macOS 上。如果你不使用brew服务,请安装
https://github.com/Homebrew/homebrew-services

停止 MySQL:

brew services stop mysql@5.7

以安全模式启动 MySQL:

mysqld_safe --skip-grant-tables &

登录MySQL:

mysql -u root

使用mysql表格:

use mysql;

更新身份验证:

update user set authentication_string=PASSWORD('') where User='root';
update user set plugin='mysql_native_password' where User='root';

清除权限并退出

flush privileges;
quit;

重新启动 MySQL:

/usr/local/opt/mysql@5.7/bin/mysql.server stop
brew services start mysql@5.7

解决方案 11:

我没有足够的声誉点来发表评论,所以我在这里发帖。+1 投票支持 @Gorcer 关于 mysql_secure_installation 的回答。如果您尚未在服务器上运行安全安装(我没有),请先运行它。它将启用 auth_socket。它在 Ubuntu 22.04 LTS 上对我有用。

解决方案 12:

啊,我今天遇到了这个问题,卡了好久,所有方法都失败了,当时我正试图将数据库从 mysql 迁移到 MariaDB。下面是我解决问题的方法。

首先,当您从旧数据库成功更改任何用户的任何信息和设置时,就会发生这种情况,结果是 mysql 和 MariaDB 之间的身份验证方式不同。

因此,迁移后,您就有机会登录,而无需更改用户信息和设置。将 backup.sql 从 mysql 导入到 mariaDB 后,使用您的 root 访问权限执行以下操作:

USE mysql;
UPDATE mysql.user SET plugin = 'mysql_native_password';

然后尝试更改 /etc/mysql/ 中包含“[mysqld]”的 .cnf

然后在[mysqld]下添加:

plugin-load-add = auth_socket.so

经过所有这些操作后,这个问题可能会得到解决。希望它对你有用。

解决方案 13:

这可能有效

创建用户'user'@'localhost',由'pwd'标识;

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

解决方案 14:

我的 cmd 提示符显示相同的错误,并且 sql 安装命令卡住了。以下命令对我有用。

打开一个新终端。从第一个终端终止当前打开的 mysql_secure_installation,

sudo killall -9 mysql_secure_installation

启动 mysql 客户端,您将进入 sql 提示符:

sudo mysql

运行以下 SQL 查询:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'setYourPasswordHereWithinQuotes';

exit

让我们通过在 cmd 中输入来保护它:

sudo mysql_secure_installation

每当输入密码时,请使用您在上面的 SQL 查询中设置的 setYourPasswordHereWithinQuotes 密码。

完毕!

解决方案 15:

您可以尝试以下命令:

hduser@master:~$ sudo /etc/init.d/mysql stop
[ ok ] Stopping mysql (via systemctl): mysql.service.
hduser@master:~$ sudo /etc/init.d/mysql start
[ ok ] Starting mysql (via systemctl): mysql.service.
相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   2579  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1553  
  IPD(Integrated Product Development)流程作为一种先进的产品开发管理模式,在众多企业中得到了广泛应用。其中,技术评审与决策评审是IPD流程中至关重要的环节,它们既有明显的区别,又存在紧密的协同关系。深入理解这两者的区别与协同,对于企业有效实施IPD流程,提升产品开发效率与质量具有重要意义...
IPD管理流程   27  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、ClickUp、Freshdesk、GanttPRO、Planview、Smartsheet、Asana、Nifty、HubPlanner、Teamwork。在当今快速变化的商业环境中,项目管理软件已成为企业提升效率、优化资源分配和确保项目按时交付的关键工具。然而...
项目管理系统   22  
  建设工程项目质量关乎社会公众的生命财产安全,也影响着企业的声誉和可持续发展。高质量的建设工程不仅能为使用者提供舒适、安全的环境,还能提升城市形象,推动经济的健康发展。在实际的项目操作中,诸多因素会对工程质量产生影响,从规划设计到施工建设,再到后期的验收维护,每一个环节都至关重要。因此,探寻并运用有效的方法来提升建设工程...
工程项目管理制度   19  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用