无法为您重置MySQL密码_无法重置MySQL的root密码

问题描述

我需要重置本地mysql安装的root密码,但不会让我。我已经试过了:

$ sudo /etc/init.d/mysql stop

* Stopping MySQL database server mysqld [ OK ]

[1]- Exit 1 sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking

[2]+ Exit 1 sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking

reg@regDesktopHome:~$ sudo mysqld --skip-grant-tables &

[1] 13651

reg@regDesktopHome:~$ 140627 19:02:02 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.

reg@regDesktopHome:~$ mysql -u root mysql

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

reg@regDesktopHome:~$ sudo mysql -u root mysql

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

[1]+ Exit 1 sudo mysqld --skip-grant-tables

如何重置密码?编辑1我得到了这个:

$ ps ax| grep mysql

16515 ? Ssl 0:00 /usr/sbin/mysqld

16551 pts/23 S+ 0:00 grep --color=auto mysql

reg@regDesktopHome:~/semios/v3upgrade$ sudo kill -9 16515

reg@regDesktopHome:~/semios/v3upgrade$ ps ax| grep mysql

16678 ? Ssl 0:00 /usr/sbin/mysqld

16715 pts/23 S+ 0:00 grep --color=auto mysql

reg@regDesktopHome:~/semios/v3upgrade$ mysql -u root

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

好像进程一杀死我就会自动重启mysql …

最佳方案

首先请尝试使用

mysql -u root -p

并在提示时输入密码(如果您还记得的话)以sql-root用户身份登录(请注意,开关-p用于输入密码)。

如果确实需要重置mysql的root密码,这是一种简单的方法-使用dpkg-reconfigure重新配置软件包。

重置mySQL root密码的简单步骤:

检查您的mysql-server的版本;

apt-cache policy mysql-server

并查看显示已安装版本的行以及其他信息。例如对于我的安装是:

Installed: 5.5.37-0ubuntu0.12.04.1

(据此,我知道我的系统中已安装mysql-server-5.5。)

使用以下命令开始重新配置:

sudo dpkg-reconfigure mysql-server-*.*

其中mysql-server-*.*应该替换为您拥有的版本。 (对我来说是mysql-server-5.5)。这将停止数据库守护程序。然后将出现提示,您必须在其中输入新密码并确认重新配置。

重新配置完成后,守护程序将自动启动。

然后,您可以登录:

mysql -u root -p

并启动数据库管理任务。

参考文献:

次佳方案

步骤1:停止MySQL服务。

sudo service mysql stop

步骤2:杀死所有正在运行的mysqld。

sudo killall -9 mysqld

步骤3:以安全模式启动mysqld。

sudo mysqld_safe --skip-grant-tables --skip-networking &

步骤4:启动mysql客户端

mysql -u root

步骤5:成功登录后,请执行此命令以更改任何密码。

FLUSH PRIVILEGES;

步骤6:您可以更新mysql root密码。

UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';

对于mysql> 5.7使用它代替上面的方法:

UPDATE mysql.user SET authentication_string=PASSWORD('newpwd') WHERE User='root';

步骤7:请执行此命令。

FLUSH PRIVILEGES;

步骤8:退出mysql控制台

exit

步骤9:杀死mysqld_safe并启动mysql

sudo killall mysqld_safe && sudo service mysql start

第三种方案

在Ubuntu 16.04和mysql-server-5.7下,正确的答案是olafure的最后评论,dpkg-reconfigure mysql-server-5.7不再起作用。

sudo service mysql stop

sudo killall mysqld

sudo mysqld_safe --skip-grant-tables --skip-networking &

mysql -u root

现在在mysql控制台中>mysql

USE mysql;

UPDATE user SET authentication_string=PASSWORD('newpass') WHERE user='root';

FLUSH PRIVILEGES;

\q

重新启动良好的mysql进程

sudo killall mysqld

sudo service mysql start

检查您的新密码

mysql -u root -p

Enter password: newpass

mysql>

第四种方案

从MySQL 5.7开始,在初始安装期间,如果将密码保留为空,则对于该用户,身份验证将基于auth_socket插件。

更改密码的正确方法是:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';

参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值