今天忘了mysql的密码了,又不舍得里面的数据,于是上网查找,结果找到点资料,但因为里面老是说用mysqld-nt,害我老在我这个版本中找不到,结果发现原来这个mysqld.exe就是所说mysqld-nt.exe一个功能的,估计是在不同版本中不同的名字而已,所以下方的资料如果碰到mysqld-nt,你用mysqld就OKl了,当然前提是你又mysqld这个文件啦
Windows:
1.用系统管理员登陆系统。
2.停止MySQL的服务。
3.进入命令窗口,然后进入MySQL的安装目录,比如我的安装目录是c:mysql,进入C:mysqlbin
4.跳过权限检查启动MySQL,
c:mysqlbin>mysqld-nt --skip-grant-tables
5.重新打开一个窗口,进入c:mysqlbin目录,设置root的新密码
c:mysqlbin>mysqladmin -u root flush-privileges password "newpassword"
c:mysqlbin>mysqladmin -u root -p shutdown
将newpassword替换为你要用的root的密码,第二个命令会提示你输入新密码,重复第一个命令输入的密码。
6.停止MySQL Server,用正常模式启动Mysql
7.你可以用新的密码链接到Mysql了。
或者在第4步后进入mysql:
即>mysql
然后进入mysql本身数据库:use mysql
然后这个时候就看到user表,重置user表中root密码即可
如:UPDATE user SET password=PASSWORD("123456") WHERE user='root';
Unix&Linux:
1.用root或者运行mysqld的用户登录系统;
2.利用kill命令结束掉mysqld的进程;
3.使用--skip-grant-tables参数启动MySQL Server
shell>mysqld_safe --skip-grant-tables &
4.为root@localhost设置新密码
shell>mysqladmin -u root flush-privileges password "newpassword"5.重启MySQL Server
GRANT ALL PRIVILEGES ON *.* TO root@% IDENTIFIED BY '123'
linux下的解决方法:
关闭mysql
然后,safe_mysqld --skip-grant-tables
启动mysql。
mysql -u root
mysql> use mysql
mysql> UPDATE user SET Password=PASSWORD('xxx') WHERE user='root';
mysql> FLUSH PRIVILEGES;
WINDOWS下试用成功!