在使用MySQL数据库时,由于某些原因长时间没有登陆MySQL,或者由于工作交接完成度不高,导致数据库root登陆密码忘记,如何解决?
一、更改my.cnf配置文件
1、用命令编辑/etc/my.cnf配置文件,即:vim /etc/my.cnf 或者 vi /etc/my.cnf 或者 nano /etc/my.cnf
2.在[mysqld]下添加skip-grant-tables,然后保存并退出
3.重启mysql服务:service mysqld restart
二、更改root用户名
1、重启以后,执行mysql命令进入mysql命令行
2、修改root用户密码
MySQL> UPDATE mysql.user SET Password=PASSWORD(’新密码’) where USER=’root’;MySQL> flush privileges;MySQL> exit
注意:以上是5.7之前的版本使用,5.7之后的版本没有Password字段,password字段改成了authentication_string
mysql> update mysql.user set authentication_string=password(‘root123456’) where user=’root’; #修改密码成功Query OK, 1 row affected, 1 warning (0.00 sec)Rows matched: 1 Changed: 1 Warnings: 1mysql> flush privileges; #立即生效Query OK, 0 rows affected (0.00 sec)
mysql> quitBye
n>mysql -u ******* -p #以该用户登录成功.Enter password: ********…………………………mysql>
注意:5.7之后的版本,密码不能过于简单,如123456,否则会报以下错误:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements。
此时,要么把密码设置复杂点,要么修改配置:
这个其实与validate_password_policy的值有关。validate_password_policy有以下取值:默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。必须修改两个全局参数:首先,修改validate_password_policy参数的值mysql> set global validate_password_policy=0;Query OK, 0 rows affected (0.00 sec)12validate_password_length(密码长度)参数默认为8,我们修改为1mysql> set global validate_password_length=1;Query OK, 0 rows affected (0.00 sec)124,完成之后再次执行修改密码语句即可成功mysql> alter user ’root’@’localhost’ identified by ’123456’;Query OK, 0 rows affected (0.00 sec)
3、最后把/etc/my.cnf中的skip-grant-tables注释掉,然后重启mysql,即:service mysqld restart
OK,下面我们就可以使用root新的密码登录MySQL了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持优爱好网。
相关文章:
1. Win11控制面板一直闪烁怎么回事?Win11控制面板打不开一直闪解决方法2. Win11怎么退出管理员账号?Win11退出已有的管理员账户方法3. Win11/win10怎么移除微软 Edge 浏览器中的必应聊天按钮?4. Win11 22H2 build 22621.1343发布 附KB5022913更新内容汇总5. Win11硬件加速gpu计划在哪里?Win11硬件加速gpu计划关闭方法6. Win11Build 25314预览版中怎么开启USB4 专用设置页面?7. Win11 文件资源管理器将有重大更新,新设计泄露8. Win11 win+e快捷键用不了怎么办? Win11资源管理器打不开的解决办法9. Win11开机后出现explorer.exe应用程序错误怎么解决? exe应用程序错误解决办法10. Win11透明任务栏失效怎么办?Win11透明任务栏失效两种解决方法