Ubuntu 15.10 mysql 错误 1524-unix_socket

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 服务器运行?

答案1

mysql 身份验证过程已调用“unix_socket”(可能与数据库部分迁移到 mariadb 有关,现已删除)。要使所有内容恢复正常工作,请执行 su:

sudo su

然后按照:

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

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

现在,在 mysql 控制台中,使用 mysql 管理数据库:

use mysql;

将 root 密码重置为我的新密码(按你的意愿更改),只是为了确保这一点:

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

不要忘记exitsu 模式。

现在 mySQL 服务器已经启动并运行。你可以使用 root 身份登录:

mysql -u root -p

或任何您想要的。密码有效。

就是这样。

答案2

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

/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

相关内容