MySQL Set Password

忘记密码和修改密码,首先进入mysql控制台

mysql> use mysql;
Database changed
mysql> update user set password = PASSWORD('你想要修改的密码') where user = 'root';
  • 如果报错,则是新版变动问题

    无报错的话,直接输入
    mysql> flush privileges;   //刷新表,使密码生效
    -----------------------------------------
    新版--->
    mysql> update user set authentication_string = PASSWORD('你想要修改的密码') 
         > where user = 'root';
         > 最后仍然需要刷新表
    
  • 为什么MySQL设置密码后,仍可以不输入密码直接登录?

    之前设置了密码,但输入mysql后,可直接进入mysql,而输入mysql -uroot -p,则需要输入密码,这是为什么呢?

    • 原来是因为数据库里面有空用户
    use mysql;
    select * from user where user='';  // 找出空账户,如果有则删除
    delete from user where user = '';  // 删除空账户
    flush privileges;		// 刷新表,使其生效
    exit;
    
  • 注意必要时需要重启MySQL服务器

关于忘记密码

  1. 以window为例,进入到mysql安装目录,打开my.ini文件

  2. 找到[mysqld]配置行,

    (注意:不是[mysql])

    ,在其下一行输入:

    • skip-grant-tables
    • 或者 --skip-grant-tables
    • 两者区别是有时两个横线会导致服务器无法重启需要测试应当添加否
  3. cmd命令:services.msi,找到mysql服务并重启

  4. 修改密码即可

WRITTEN BY:    Richard

I'm discombobulated !