当前位置: 首页 > 面试题库 >

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

柯昆
2023-03-14
问题内容

我的本地环境是:

  • 新鲜的Ubuntu 16.04
  • 使用PHP 7
  • 安装了MySQL 5.7
    sudo apt-get install mysql-common mysql-server
    

当我尝试通过MySQL登录MySQL时:

mysql -u root -p

我遇到了3个步骤的周期性问题。

1)首先是一些套接字问题

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

解决方案:重新启动PC。

导致另一个错误:

2)拒绝访问

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

可能的问题?“ root”用户的密码错误!

解决方案: 使用本教程重置root密码。

使用正确的密码和有效的套接字,将出现最后一个错误。

3)不正确的auth插件

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

在这里我停了下来,或者又以某种方式回到了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文件

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



 类似资料:
  • 问题内容: 当我尝试来源大型SQL文件(大型查询)时出现此错误。 表中的任何内容均未更新。我尝试删除和取消删除表/数据库,以及重新启动MySQL。这些都不是解决问题的方法。 这是我的最大数据包大小: 这是文件大小: 当我尝试其他方法时… 问题答案: 将此行添加到文件中解决了我的问题。 当列的值较大会导致问题时,此功能很有用,您可以在此处找到说明。 在Windows上,此文件位于:“ C:\ Pro

  • 使用-u show启动mysql: 同时显示完整的错误日志: apt列表结果 在我升级到MySQL8之后就会发生这种情况。不知怎么的,如果可能的话,我不会重新安装MySQL。我期望我可以登录phpmyadmin,但我知道这不是他的问题。

  • 问题内容: 在MySQL中,我有一个用户芒果。当我创建它时,用户可以完美地工作。但是,重新启动计算机后,尝试登录芒果会产生以下输出: 这让我想起了密码哈希,因此在调查mysql.user之后,我发现mangos没有密码!我更新了密码: 现在,我得到: 与mangos的mysql.user密码栏中显示的数字相同,并且与原始数字不同。我仍然无法登录。 如何使MySQL正确识别密码? 这就是这里的问题吗

  • 本文向大家介绍mysql错误处理之ERROR 1786 (HY000),包括了mysql错误处理之ERROR 1786 (HY000)的使用技巧和注意事项,需要的朋友参考一下 ERROR 1786 (HY000) 【环境描述】 msyql5.6.14 【报错信息】 执行create table ... select的时候遇到报错: db1 [test] [23:01:58]> create tab

  • 本文向大家介绍mysql错误处理之ERROR 1665 (HY000),包括了mysql错误处理之ERROR 1665 (HY000)的使用技巧和注意事项,需要的朋友参考一下 ERROR 1665 (HY000) 【环境描述】 msyql5.6.14 【报错信息】 执行SQL语句的时候报错: 【报错原因】 innodb的事务隔离级别是read commited或者read uncommited模式

  • 问题内容: 我正在尝试为体育馆管理系统创建数据库,但无法弄清楚为什么会出现此错误。我试图在这里搜索答案,但找不到。 这是父表。 你们能帮我解决这个问题吗?谢谢。 问题答案: 为了将字段定义为,引用的父字段必须在其上定义了索引。 根据有关约束的文档: 参考parent_tbl_name(index_col_name,…) 定义上,和分别。并确保子列定义必须与其父列定义匹配。 更改表定义如下: 更改表