mysql修改密码,执行mysqld --skip-grant-tables命令后,启动mysql服务报错。

mysql修改密码操作步骤:
1、若是忘记密码,首先应去掉认证检查。
a. 停止mysql服务 管理员身份进入cmd 执行停止服务命令:net stop mysql
b. 非管理员身份进入cmd mysql/bin目录下,执行命令:mysqld --skip-grant-tables(注意mysqld与–skip间的空格)
注:一定要先停止服务,否则不生效;
执行后如下图,即可打开另外一个窗口直接用mysql命令进入数据库,进行后续的修改密码操作(登录数据库客户端工具操作亦可)。 ZG4ubmV0L2hqX2p1bmUwOA==,size_16,color_FFFFFF,t_70)
2、设置新密码 进入mysql数据库(user表位于此库),执行修改sql进行修改。
a. use mysql;
b. update user set authentication_string=password(‘root’) where user=‘root’ and Host = ‘localhost’;
(mysql版本为5.7.26,有些版本密码对应的字段是password,以实际表字段为准)
3、flush privileges; #<==刷新权限使得修改密码生效。
4、打开任务管理器,关闭mysqld.exe(此进程是执行mysqld --skip-grant-tables后生成,会与后续的重启mysql服务冲突)。
5、管理员身份cmd进入mysql\bin目录下,执行net start mysql。
以上,密码就修改完成了。若未忘记密码,只想修改密码,执行步骤2、3即可。

注意问题:
1、若执行mysqld --skip-grant-tables,一下子就跳出来,任务管理器中未生成mysqld.exe进程。可以尝试检查D:\Program Files (x86)\mysql-5.7.26-winx64(以实际 目录为准)的my.ini配置文件。

[mysqld]
basedir=D:\Program Files (x86)\mysql-5.7.26-winx64
datadir=D:\Program Files (x86)\mysql-5.7.26-winx64\data
# 设置mysql客户端默认字符集
#default-character-set=utf8    
port = 3306 
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

经过测试,配置项"default-character-set=utf8"若打开,执行mysqld --skip-grant-tables后,一下子就跳出来,登录不了数据库,也无法重启服务。

2、若是重启mysql服务的时候,报错(如下图):
在这里插入图片描述
查看任务管理器中,是否有mysqld.exe进程,若有结束任务,再重启,即可正常重启mysql服务;若无,则可以通过注释掉my.ini中的问题项,执行mysqld --skip-grant-tables,生成mysqld.exe进程,再进行后续操作。

以上,是我操作过程中的总结,有些也不是很明白,希望以后可以弄明白。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值