重置 root 密码
在忘记 root 密码的情况下,可以进入 mysql 的安全模式,重置 root 密码。
1. 停止 MySQL 服务
打开命令提示符窗口,输入 net stop [mysql服务名] 关闭 MySQL 服务。
2. 切换到 bin 目录
在命令提示符窗口中,通过 cd 命令切换到 mysql 安装目录下的 bin 目录
3. 进入安全模式
在 bin 目录下输入
mysqld --skip-grant-tables
跳过权限检查启动 mysql。(此时窗口没提示异常,即可进行下一步)
4. 重置账户密码
打开另一个命令提示符窗口(别关闭安全模式窗口),同样切换到 mysql \ bin 目录,输入 mysql(或者mysql -u root -p root默认密码为空) 跳过权限验证连接数据库。执行 update mysql.user set authentication_string="" where user="root"; 重置 root 用户的密码(5.7 之前为 password 字段)。提示Query OK字样即可
5. 刷新权限表
执行 flush privileges; 命令刷新权限表,密码已经重置完成,输入 quit 退出。--这里我本人执行失败了.不过后面尝试进入root也成功了
关闭所有命令提示符窗口,通过任务管理器结束 mysqld.exe 进程。重启 MySQL 服务,之后就可以直接登录 root 账号了。
修改 root 密码
出于安全考虑,root 密码不宜为空,所以需要在密码重置之后,再重新设置一个密码。
方法一:SET PASSWORD
SET PASSWORD FOR "username"=PASSWORD("new password");
以 root 身份登录 mysql,再使用 set password 命令修改密码:
方法二:mysqladmin
mysqladmin -u "username" -p password "new password"
执行该命名之后会提示输入原密码,输入正确后即可修改。
方法三:UPDATE TABLE
在重置 root 密码的同时,也可以设置默认密码。不过密码不能为明文,必须使用 password() 函数加密。
UPDATE mysql.user SET authentication_string=PASSWORD("new password") WHERE user="username";
原文:http://www.jb51.net/article/129937.htm