MySQL8.0快速方便的重置密码及过程中遇到的问题
年纪大了,突然忘了MySQL的登录密码,冲浪一圈,发现十个里面有八个是通过在my.ini或是my_default.ini中添加–skip-grant-tables的方法来实现跳过Mysql密码来连接数据库,并更改密码。最后找到了一种直接通过命令行来重置密码的方法,并记录了主要过程及遇到的问题.
重置密码步骤
设置跳过验证
- 用管理员身份进入cmd一号,进入MySQL的bin目录下,执行步骤2–3的命令
cd 你的MySQL安装目录/bin
- 停止MySQL服务
net stop mysql
问题一:不是内部命令的解决办法
- 设置跳过验证(正常的话窗口是会卡在这儿的)
mysqld --console --skip-grant-tables --shared-memory
问题二:窗口没有卡住的解决办法
重置root密码为空
- 用管理员身份进入cmd二号,进入MySQL的bin目录下,执行步骤5–7的命令
- 无密码登录
mysql
- 重置root密码为空
update mysql.user set authentication_string=’’ where User = ‘root’;
出现Query
- quit;
重置密码
- 回到cmd一号,连按两次Ctrl+C,回到bin目录下,可在此窗口继续执行步骤10–14
- 启动数据库服务
net start mysql
- 进入数据库
mysql -u root -p
- 输入密码的时候按一次回车
- 设置新密码
alter user ‘root’@‘localhost’ identified by ‘123456’;(123456为你要设置的新密码)
- quit;需要验证的话,重复步骤10
问题及解决办法
不是内部命令
遇到这个就是忘了配置MySQL的环境变量了,将MySQL的bin路径添加到环境变量
data文件问题
按顺序执行以下命令(出错了就从头再来一次):
- 删除安装目录下的data文件夹[放心删,老板不会开除你的]
- mysqld -remove MySQL
- mysqld --initialize-insecure(创建data文件)
- mysqld --install(安装mysqld服务)
- net start mysql (启动mysql服务,如果要继续修改密码,记得停止mysql服务 net stop mysql)