如果知道密码需要修改的情况下比较简单,这里主要记录下忘记mysq登录密码时如何修改。
先要声明一点,大部分情况下,修改MySQL是需要有mysql里的root权限的, 所以一般用户无法更改密码,除非请求管理员。
在开始下面的操作之前,先在任务管理器中结束mysqld.exe进程,确保mysql服务器端已结束运行。
1、打开cmd命令提示符,进入上一步mysql.exe所在的文件夹。
简洁方法:找到安装mysql的文件夹,进入mysql的bin目录,鼠标单击地址栏,拖选地址栏的全部文本,输入cmd,回车即可。
2、输入命令 mysqld --skip-grant-tables
回车。
–skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
此时就跳过了mysql的用户验证;
还用上一步的方法再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了,即输入刚才的命令之后命令行就无法操作了);
3、直接输入mysql回车,如果成功,将出现MySQL提示符 >。
4、连接权限数据库: use mysql; 。
5、修改密码
A.第一种输入:
update user set password=password('123456') where user='root' and host='localhost';
输入以上命令如果报如下错误:
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
是因为有些mysql数据库下已经没有password这个字段了,password字段改成了authentication_string
如果是上面这种情况,需要采用第二种语句:
B.第二种输入
update user set authentication_string=password('123456') where user='root' and host='localhost';
6、刷新权限:flush privileges;
7、退出 quit。
用刚才修改的账户和修改后的新密码就可以登录了。
提示:
修改完成以后测试,如果mysql仍能免密码登录,需要编辑my.cnf文件,删掉skip-grant-tables
这一行,然后重启MySQL,/etc/init.d/mysqld restart。
重启mysql服务,使用户名root和刚才设置的新密码root登录就ok了;