mysql数据库忘记root密码
1、解决方法一:
步骤一:停止mysql服务
步骤二:使用mysqld_safe结合–skip-grant-tables启动数据库(它的作用是不需要密码登录)
步骤三:登录mysql数据库,用update修改root密码
步骤四:退出mysql数据库,使用kill命令杀掉mysql进程,然后正常启动mysql即可
1、停止mysql服务:
systemctl stop mysqld
或
pkill mysql
2、使用mysqld_safe结合–skip-grant-tables启动数据库
mysqld_safe --skip-grant-tables &
3、用update修改root密码
update mysql.user set authentication_string=PASSWORD('新密码') where user='root' and host='localhost';
参数含义解释:
update:更新记录,修改表中的数据
mysql:mysql库是系统库,里面保存有账户信息,权限信息等。
user:user表,创建用户时保存在mysql数据库里的user表里
set:为update的语法格式,是固定的
authentication_string:为user表中的字段,表示加密处理的密码
PASSWORD:设置密码
where: 规定哪条记录或者哪些记录需要更新,如果省略where条件将更新全部记录
user:表示用户名,后面跟你要修改的用户名
and:逻辑运算符,and=与,什么与什么
host:指定该用户在那些台主机上可以登录mysql服务器,可以使用ip地址、网段、主机名的形式。如果是mysql服务器本机可用localhost,也可使用通配符 %
4、刷新权限列表
flush privileges;
5、退出mysql数据库
exit
或
quit
6、使用kill命令杀掉mysql进程
查看mysql进程
netstat -anp | grep mysql
或
ps -aux | grep mysql
根据名字杀进程:
pkill mysql
根据进程杀:
kill 进程号
-9 参数强制杀进程
7、启动mysql即可
systemctl start mysqld
2、解决方法二:
步骤一:关闭mysql数据库
步骤二:使用vim命令进入my.cnf文件,MYSQL的配置文件
vim /etc/my.cnf #加入下列参数
skip-grant-tables #该参数表示,在启动mysql时不启动grant-tables,授权表
保存退出:wq
systemctl start mysqld #启动mysql
步骤三:进入mysql
mysql -uroot -p #会提升你输入密码,不用管,直接回车进行
步骤四:修改root密码
update mysql.user set authentication_string=PASSWORD('新密码') where user='用户' and host='localhost';
步骤五:刷新授权列表
flush privileges;
步骤六:退出mysql
quit
删除/etc/my.cnf文件里边配置的参数
保存退出
重启mysql即可
systemctl restart mysqld
步骤五:刷新授权列表
flush privileges;
步骤六:退出mysql
quit
删除/etc/my.cnf文件里边配置的参数
保存退出
重启mysql即可
systemctl restart mysqld
自己写的,也不知道咋样,小白一枚 希望有大佬点评,学习学习
|