LinuxMySQL忘记root密码解决⽅案
在使⽤MySQL数据库时,由于某些原因长时间没有登陆MySQL,或者由于⼯作交接完成度不⾼,导致数据库root登陆密码忘
记,如何解决?
⼀、更改配置⽂件
1、⽤命令编辑/etc/配置⽂件,即:vim/etc/或者vi/etc/或者nano/etc/
2.在[mysqld]下添加skip-grant-tables,然后保存并退出
3.重启mysql服务:rvicemysqldrestart
⼆、更改root⽤户名
1、重启以后,执⾏mysql命令进⼊mysql命令⾏
2、修改root⽤户密码
MySQL>TPassword=PASSWORD('新密码')whereUSER='root';
MySQL>flushprivileges;
MySQL>exit
注意:以上是5.7之前的版本使⽤,5.7之后的版本没有Password字段,password字段改成了authentication_string
mysql>tauthentication_string=password(‘root123456')whereur='root';#修改密码成功
QueryOK,1rowaffected,1warning(0.00c)
Rowsmatched:1Changed:1Warnings:1
mysql>flushprivileges;#⽴即⽣效
QueryOK,0rowsaffected(0.00c)
mysql>quit
Bye
n>mysql-u*******-p#以该⽤户登录成功.
Enterpassword:********
…………………………
mysql>
注意:5.7之后的版本,密码不能过于简单,如123456,否则会报以下错误:ERROR1819(HY000):Your
passworddoesnotsatisfythecurrentpolicyrequirements。
此时,要么把密码设置复杂点,要么修改配置:
这个其实与validate_password_policy的值有关。
validate_password_policy有以下取值:
默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,⼩写或⼤写字母,特殊字符。
有时候,只是为了⾃⼰测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。
必须修改两个全局参数:
⾸先,修改validate_password_policy参数的值
mysql>tglobalvalidate_password_policy=0;
QueryOK,0rowsaffected(0.00c)
1
2
validate_password_length(密码长度)参数默认为8,我们修改为1
mysql>tglobalvalidate_password_length=1;
QueryOK,0rowsaffected(0.00c)
1
2
4,完成之后再次执⾏修改密码语句即可成功
mysql>alterur'root'@'localhost'identifiedby'123456';
QueryOK,0rowsaffected(0.00c)
3、最后把/etc/中的skip-grant-tables注释掉,然后重启mysql,即:rvicemysqldrestart
OK,下⾯我们就可以使⽤root新的密码登录MySQL了。
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
本文发布于:2022-12-30 19:59:46,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/61314.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |