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

我的本地环境是:

  • 新鲜的Ubuntu 16.04
  • 与PHP 7
  • 与安装的MySQL 5.7

    sudo apt-get install mysql-common mysql-server 

当我尝试login到MySQL(通过CLI):

 mysql -u root -p 

我经历了三个步骤的循环问题。

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

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

解决scheme:重新启动电脑。

这导致了另一个错误:

2)访问被拒绝

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

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

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

有了正确的密码和工作套接字,就出现了最后的错误。

3)不正确的authentication插件

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

在这里,我停下来或以某种方式再次得到1)。

我解决了!

在步骤2中重置根密码时,还要将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命令

 # 1. first, run these bash commands 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 mysql -u root -p root # try login to database 

盲路径和可能的边缘错误

使用127.0.0.1而不是localhost

 mysql -uroot # "-hlocalhost" is default 

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

 mysql -uroot -h127.0.0.1 

效果更好。

跳过套接字问题

我已经找到了许多方法来创建mysqld.sock文件,更改访问权限或符号链接它。 毕竟这不是问题。

跳过my.cnf文件

这个问题也不在那里。 如果你不确定, 这可能会帮助你 。