MySql修改密码与密码重置

忘密码这种事,常有的事~~o( ̄▽ ̄)ゞ)) ̄▽ ̄)o
不过我至少设置的密码复杂性还可以~以至于我每次都不可能猜对…..

修改密码

MySQL 的“root”用户默认状态是没有密码的,所以在 PHP 中您可以使用mysql_connect("localhost","root","")来连接 MySQL 服务器;

如果您想为 MySQL 中的“root”用户设置密码,请在控制台中使用“mysqladmin”命令。例如:

mysqladmin.exe -u root password 123456

另外,如果是先前有密码,则修改命令为:

mysqladmin.exe -u root -p password 123456

回车后提示你输入当前密码,确认后会被修改为新密码

重置密码

因为我用的是centOS,所以我使用第一种方法成功重置了,其他的没测试

安全模式重置法

基本的思路是,以安全模式启动mysql,这样不需要密码可以直接以root身份登录,然后重设密码。
首先,我们停掉MySQL服务:service mysql stop

上面的命令适用于Ubuntu和Debian。CentOS、Fedora和RHEL下使用mysqld替换mysql

以安全模式启动MySQL:
mysqld_safe --skip-grant-tables --skip-networking &

注意我们加了--skip-networking,避免远程无密码登录 MySQL。
这样我们就可以直接用root登录,无需密码:mysql -u root
接着重设密码:

1
2
3
mysql> use mysql;
mysql> update user set password=PASSWORD("mynewpassword") where User='root';
mysql> flush privileges;

注意,命令后需要加分号。
重设完毕后,我们退出(quit 或者 exit),然后启动 MySQL 服务:
重启服务:service mysql restart

同样,以上命令适用于Ubuntu和Debian,Centos、Fedora和RHEL需要用mysqld替换mysql。

现在可以尝试用新密码登录了:mysql -u root -pmynewpassword

注意,-p 和密码间不能有空格。
推荐使用mysql -u root -p然后回车再输密码

win下安全模式重置

首先也是先停掉服务:net stop mysql
然后cd进入mysql的安装目录下的bin目录执行:mysqld.exe --skip-grant-tables
然后再打开一个命令行,登陆mysql,这时候密码是空了接着重设密码:

1
2
3
4
5
mysql> use mysql;
mysql> update user set password=PASSWORD("mynewpassword") where User='root';
# 在mysql5.7以上可能没有password这个字段了新名字叫 authentication_string;所以是下面的语句
# update user set authentication_string=PASSWORD("mynewpassword") where User='root';
mysql> flush privileges;

然后进任务管理器结束所有mysql的服务进程,再打开下mysql服务即可

其他方案

在Ubuntu和Debian系统上,有一个debian-sys-maint用户,Debian类系统下一些系统脚本对mysql的操作是通过这个用户完成的。所以我们可以通过这个用户来修改 root 密码。该用户的密码可以在/etc/mysql/debian.cnf下找到
登陆后执行sudo mysql -u debian-sys-maint -p重置即可

喜欢就请我吃包辣条吧!

评论框加载失败,无法访问 Disqus

你可能需要魔法上网~~