mysql -u root -p
系统回复的内容类似于:
mysql "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded"
无法登录,找不到插件,在配置文件中没有错误(全部恢复为默认设置)。
如何重新控制并使MySQL服务器运行?
mysql -u root -p
系统回复的内容类似于:
mysql "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded"
无法登录,找不到插件,在配置文件中没有错误(全部恢复为默认设置)。
如何重新控制并使MySQL服务器运行?
sudo su
然后跟着:
/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables &
mysql -uroot
这将完全停止mysql,绕过用户身份验证(无需密码)并使用用户“root”连接到mysql。
现在,在mysql控制台中,进入mysql管理数据库:
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
不要忘记退出su模式。
现在MySQL服务器已经启动并运行。您可以使用root登录它:
mysql -u root -p
或者你想要的任何内容。密码使用是有效的。
就这样。
mysqld_safe
没有像 --skip-grant-tables
这样的选项...怎么回事? - heemaylmysqld --verbose --help
来找到该选项。 - Hydra Starmastermysqld_safe
不同的是,它抱怨参数--skip-grant-tables
不存在,我使用了mysqld
。然而,它一直抱怨无法在/var/run/mysqld/
中创建套接字文件。我检查了apparmor配置,它具有适当的权限。为了解决这个问题,我必须执行mkdir /var/run/mysqld/
,然后给予完全开放的权限:chmod -R 777 /var/run/mysqld/
。然后,我终于可以启动守护进程并将插件更改为'mysql_native_password'。 - dennmat/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