在我们用mysql数据库的时候经常会遇到mysql密码忘记,曾经我也遇到了,但是去网上找了很多的解决方案就是无法进行解决,(网上全部都是进行转载。。)最后我自己总结出来了,解决了mysql的密码忘记的解决方案。。
第一种解决方案
1:在/ete/my.cnf(windows下面应该是在mysql的的那个bin文件夹下面,不同的系统所对应不同的目录)
2:在主配置文件内找到[mysqld]这个单词,然后再下面输入skip-grant-tables这句好像是进行跳过检测,然后保存退出,之后重新启动mysql(/etc/init.d/mysqld restart) 注意一定要重新启动mysql服务。。
3:当进去之后,先输入use mysql; //切换到mysql这个数据库
4:然后输入命令mysql> update user set password=password('new password') where user='root';
5;因为在第二部的时候我们在配置文件内加入了这句skip-grant-tables 所以在修改之后 要把这句给去掉否则你所有所作的是没有用的。。然后重新启动mysql
6这步之后就可以进行启动,当你在输入mysql的时候是无法进去的。。你要输入mysql -u root -p 意思是用root这个用户,需要密码。。
第二种解决办法
1. 向mysqld server 发送kill命令关掉mysqld server(不是 kill -9),存放进程ID的文件通常在MYSQL的数据库所在的目录中。
kill `cat /mysql-da ta-directory/hostname.pid`
你必须是UNIX的root用户或者是你所运行的SERVER上的同等用户,才能执行这个操作。
2. 使用`--skip-grant-tables' 参数来启动 mysqld。
3. 使用`mysql -h hostname mysql'命令登录到mysqld server ,用grant命令改变口令。你也可以这样做:`mysqladmin -h hostname -u user password 'new password''。
(其实也可以用use mysql; update user set password =password('yourpass') where user='root' 来做到。)
4. 载入权限表: `mysqladmin -h hostname flush-privileges' ,或者使用 SQL 命令`FLUSH PRIVILEGES'。(当然,在这里,你也可以重启mysqld。
kill `cat /mysql-da ta-directory/hostname.pid`
你必须是UNIX的root用户或者是你所运行的SERVER上的同等用户,才能执行这个操作。
2. 使用`--skip-grant-tables' 参数来启动 mysqld。
3. 使用`mysql -h hostname mysql'命令登录到mysqld server ,用grant命令改变口令。你也可以这样做:`mysqladmin -h hostname -u user password 'new password''。
(其实也可以用use mysql; update user set password =password('yourpass') where user='root' 来做到。)
4. 载入权限表: `mysqladmin -h hostname flush-privileges' ,或者使用 SQL 命令`FLUSH PRIVILEGES'。(当然,在这里,你也可以重启mysqld。
第三种解决方案
1,重新在另一台电脑上安装相同版本的MySQL
2,删除忘记密码的电脑中MySQL安装目录中\da ta\mysql的全部内容(要先停止MySQL服务)
3,Copy新装的电脑上MySQL安装目录中\da ta\mysql的全部内容 to 刚刚删除的目录中
4,启动MySQL服务