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

2024-10-23 08:47:00
admin
原创
59
摘要:问题描述:我的本地环境是:全新 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.
相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   601  
  华为IPD与传统研发模式的8大差异在快速变化的商业环境中,产品研发模式的选择直接决定了企业的市场响应速度和竞争力。华为作为全球领先的通信技术解决方案供应商,其成功在很大程度上得益于对产品研发模式的持续创新。华为引入并深度定制的集成产品开发(IPD)体系,相较于传统的研发模式,展现出了显著的差异和优势。本文将详细探讨华为...
IPD流程是谁发明的   7  
  如何通过IPD流程缩短产品上市时间?在快速变化的市场环境中,产品上市时间成为企业竞争力的关键因素之一。集成产品开发(IPD, Integrated Product Development)作为一种先进的产品研发管理方法,通过其结构化的流程设计和跨部门协作机制,显著缩短了产品上市时间,提高了市场响应速度。本文将深入探讨如...
华为IPD流程   9  
  在项目管理领域,IPD(Integrated Product Development,集成产品开发)流程图是连接创意、设计与市场成功的桥梁。它不仅是一个视觉工具,更是一种战略思维方式的体现,帮助团队高效协同,确保产品按时、按质、按量推向市场。尽管IPD流程图可能初看之下显得错综复杂,但只需掌握几个关键点,你便能轻松驾驭...
IPD开发流程管理   8  
  在项目管理领域,集成产品开发(IPD)流程被视为提升产品上市速度、增强团队协作与创新能力的重要工具。然而,尽管IPD流程拥有诸多优势,其实施过程中仍可能遭遇多种挑战,导致项目失败。本文旨在深入探讨八个常见的IPD流程失败原因,并提出相应的解决方法,以帮助项目管理者规避风险,确保项目成功。缺乏明确的项目目标与战略对齐IP...
IPD流程图   8  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

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

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

内置subversion和git源码管理

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

免费试用