MySQL(root用户)密码重置

MySQL(root用户)密码重置 

url:http://blog.sina.com.cn/s/blog_759a5a7c01017dj0.html
问题重现(以下讨论范围仅限Windows环境):

C:\AppServ\MySQL> mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user
'root'@'localhost' (using password: YES)

 

编辑mysql配置文件my.ini(不知道在哪请搜索),在[mysqld]这个条目下加入
  skip-grant-tables
保存退出后重启mysql

1.点击“开始”->“运行”(快捷键Win+R)。

  2.启动:输入 net stop mysql

  3.停止:输入 net start mysql


这时候在cmd里面输入mysql -u root -p就可以不用密码登录了,出现password:的时候直接回车可以进入,不会出现ERROR 1045 (28000),但很多操作都会受限制,因为我们不能grant(没有权限)。按下面的流程走(红色部分为输入部分,粉红色的是执行后显示的代码不用输入):

1.进入mysql数据库:

mysql> use mysql;
Database changed

2.给root用户设置新密码,蓝色部分自己输入:
mysql> update user set password=password("新密码") where user="root";
Query OK, 1 rows affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0

3.刷新数据库
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

4.退出mysql:
mysql> quit
Bye

改好之后,再修改一下my.ini这个文件,把我们刚才加入的"skip-grant-tables"这行删除,保存退出再重启mysql就可以了。



其它方式

url: http://www.cnblogs.com/jiunadianshi/articles/2007102.html

分别在Windows下和Linux下重置了MYSQL的root的密码:
  在windows下:

  1:进入cmd,停止mysql服务:Net stop mysql

     到mysql的安装路径启动mysql,在bin目录下使用mysqld-nt.exe启动,

  2:执行:mysqld-nt --skip-grant-tables(窗口会一直停止)
  
     3:然后另外打开一个命入令行窗口,执行mysql(或者直接进入Mysql Command Line Cilent),此时无需输入密码即可进入。

  Java代码

  >use mysql

  >update user set password=password("新密码") where user="root";

  >flush privileges;

  >exit

  4:使用任务管理器,找到mysqld-nt的进程,结束进程!

  在重新启动mysql-nt服务,就可以用新密码登录了。

  在linux下:

  如果 MySQL 正在运行,首先杀之: killall -TERM mysqld。

  启动 MySQL :bin/safe_mysqld --skip-grant-tables &

  就可以不需要密码就进入 MySQL 了。

  然后就是

  Java代码

  >use mysql

  >update user set password=password("new_pass") where user="root";

  >flush privileges

  >use mysql >update user set password=password("new_pass") where user="root"; >flush privileges;

  重新杀 MySQL ,用正常方法启动 MySQL 。



你可能感兴趣的:(MySQL(root用户)密码重置)