在 Ubuntu 15.10 上,有时(可能在安装和删除 mariadb 之后)mysql 无法运行。任务已启动,但服务器已关闭。
在命令中:
mysql -u root -p
Run Code Online (Sandbox Code Playgroud)
系统回复如下:
mysql "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded"
Run Code Online (Sandbox Code Playgroud)
无法登录,找不到插件,配置文件中没有错误(全部为默认值)。
如何重新控制,并使mysql服务器运行?
Hyd*_*ter 103
“unix_socket”已被mysql身份验证过程调用(可能与数据库部分迁移到mariadb有关,现已删除)。要让所有东西恢复工作,请执行以下操作:
sudo su
Run Code Online (Sandbox Code Playgroud)
然后按照:
/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables &
mysql -uroot
Run Code Online (Sandbox Code Playgroud)
这将完全停止 mysql,绕过用户身份验证(不需要密码)并使用用户“root”连接到 mysql。
现在,在 mysql 控制台中,使用 mysql 管理数据库:
use mysql;
Run Code Online (Sandbox Code Playgroud)
要将 root 密码重置为mynewpassword(根据您的意愿更改),请确保:
update user set password=PASSWORD("mynewpassword") where User='root';
Run Code Online (Sandbox Code Playgroud)
这将覆盖身份验证方法,删除 unix_socket 请求(以及其他所有内容),恢复正常且有效的密码方法:
update user set plugin="mysql_native_password";
Run Code Online (Sandbox Code Playgroud)
退出mysql控制台:
quit;
Run Code Online (Sandbox Code Playgroud)
停止和启动与 mysql 相关的一切:
/etc/init.d/mysql stop
kill -9 $(pgrep mysql)
/etc/init.d/mysql start
Run Code Online (Sandbox Code Playgroud)
不要忘记exitsu 模式。
现在 mySQL 服务器已启动并正在运行。你可以用root登录:
mysql -u root -p
Run Code Online (Sandbox Code Playgroud)
或任何你想要的。密码使用有效。
就是这样。
小智 12
这是我执行此操作的步骤:
/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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
89879 次 |
| 最近记录: |