当前位置: 首页>>技术问答>>正文


Ubuntu 15.10 mysql错误1524 – unix_socket

, ,

问题描述

在Ubuntu 15.10上,在某一点(可能在安装和删除mariadb之后),mysql无法运行。任务已启动,但服务器已关闭。

在命令:

mysql -u root -p

系统回复如下:

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

无法登录,未找到插件,配置文件中没有错误(全部为默认值)。

如何恢复控制,并使mysql服务器运行?

最佳解决办法

“unix_socket”已被mysql身份验证过程调用(可能与数据库部分迁移到mariadb有关,现已删除)。为了让所有的东西恢复工作去su:

sudo su

然后按照:

/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables &
mysql -uroot

这将完全停止mysql,绕过用户身份验证(无需密码)并使用用户”root”连接到mysql。

现在,在mysql控制台中,使用mysql管理db:

use mysql;

要将root密码重置为mynewpassword(根据您的意愿更改),只需确保它:

update user set password=PASSWORD("mynewpassword") where User='root';

这个将覆盖身份验证方法,删除unix_socket请求(以及其他所有),恢复正常和工作密码方法:

update user set plugin="mysql_native_password";

退出mysql控制台:

quit;

停止并启动与mysql相关的所有内容:

/etc/init.d/mysql stop
kill -9 $(pgrep mysql)
/etc/init.d/mysql start

不要忘记exit的su模式。

现在mySQL服务器启动并运行。您可以使用root登录:

mysql -u root -p

或者你想要什么。密码使用有效。

而已。

次佳解决办法

以下是我执行此操作的步骤:

/etc/init.d/mysql stop
sudo killall mysqld_safe
sudo killall mysqld
sudo mysqld_safe --skip-grant-tables &
mysql -u root
use mysql;
update user set password=PASSWORD("mynewpassword") where User='root';
update user set plugin="mysql_native_password";
quit;
/etc/init.d/mysql stop
sudo kill -9 $(pgrep mysql)
/etc/init.d/mysql start

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/2985.html,未经允许,请勿转载。