修改密码有三种方式
首次创建一个用户 create user "xixi"@"127.0.0.1" identified by "123" # 创建一个用户名为xixi 密码为123的用户(IP是127.0.0.1)
create user "xixi"@"%" identified by "123" # 创建新用户 用户名xixi 密码123;
运行结果:
然后我们可以直接使用xixi 123登陆连接
如果创建了新的用户,使用这个用户名和密码登录尝试连接数据库,一直连接不成功的话(后面cmd中使用mysqladmin -uxixi -p123 password 1234 修改也不会成功的 会一直报错):
解决办法:https://blog.csdn.net/ykr168age/article/details/25193707 只需要删除匿名用户即可)
1. cmd命令行中操作:
mysqladmin -u用户名 -p该用户的原密码 password 该用户的新密码;
然后重新登录:
这里我尝试了很多遍(有时候创建一下就可以成功,有时候来回弄好几遍--反正我想的是,如果创建了新的用户名,在cmd中使用mysqadmin -uxixi -p123 password 1234 修改创建用户的密码时,不成功就把匿名用户删掉 步骤:首先使用mysql -uroot -p123登录,然后use mysql -->delete from user where user="" -->flush privileges刷新权限)然后再把原来旧密码创建的连接删掉,重新使用新密码进行登陆即可;
2. 使用set passsword for "xixi"@"%" =password("1234") 修改创建用户的密码:
set password for "xixi"@"%" =password("123") # 修改新创建的用户密码改回123(cdm中从123-->1234)
运行结果(把使用原来密码创建的连接删掉,使用set password for "xixi"@"%"=password("123")修改的密码重新建立连接)
可以发现关闭原来的连接,再重新打开,就会报错:
然后我们删掉原来的连接,使用正确密码重新登陆连接:
3. update mysql.user set password=password("1234") where user="xixi" and host="%" # 直接修改核心库mysql的user表 中password字段信息
由于我们登陆数据库时用户名密码都记录在核心库mysql的user表中 所有我们可以直接修改表user的字段信息 password的值就可以啦
我们先来看一下核心库mysql的user表中的字段信息:
所以可以这样操作(直接update info set name="xixi" where id=1之前学的修改表中数据的语法)来修改新创建的用户的用户密码(只不过这里更高级,因为新创建的用户信息都保存再核心库mysql的user表中,而密码有都在user表的pasword字段中)
update mysql.user set password=password("1234") where user="xixi" and host="%" # 使用update修改表中字段信息
运行结果(关闭原旧密码的连接,重新打开已经不行了,因为改密码了,所以删掉原来连接,重新使用新密码登录创建连接)
4. 忘记root密码解决办法(未实践过)
1. 首先关闭,mysql服务: net stop mysql;
2. 跳过权限认证: mysqld --skip -grant-tables;
3. 重新打开cmd窗口 直接输入mysql(不需要输入用户名密码)
4. 修改密码: update mysql.user set password=password("123") where user="xixi" and host="%"
5. 刷新权限 flush privileges;