mysql 8.0以上版本,安装及解决忘记密码问题

本文详细介绍了如何在Windows上安装MySQL 8.0,包括下载解压、创建配置文件、安装服务及启动服务的步骤。同时,针对忘记密码的情况,提供了在无密码状态下重置root密码的详细过程,包括使用mysqld命令进入无密码模式,更新用户认证字符串,以及解决8.0版本新密码验证规则导致的登录问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、官网下载解压版MySQL数据库

下载链接:MySQL :: Download MySQL Community Server

2、将下载的mysql放在自己喜欢的盘符,不一定是C盘,例如我的就是解压在D盘,D:\mysql\mysql-8.0.18-winx64

3、在D:\mysql\mysql-8.0.18-winx64文件夹下新建my.ini配置文件,内容如下:

[client]
# 设置mysql客户端默认字符集
default-character-set=utf8
 
[mysqld]

# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=D:\\mysql\\mysql-8.0.18-winx64
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
# datadir=C:\\web\\sqldata
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

4、打开windows+R输入cmd,切换盘符至D:\mysql\mysql-8.0.18-winx64\bin目录下

执行:mysqld --initialize --console

执行完成后,会输出 root 用户的初始默认密码,这个我没有截图,格式是:root@localhost:初始密码,不过这个初始密码我没有登录成功过,后面讲一下无密码状态下初始密码的操作。

继续执行:mysqld install

上面步骤成功后,执行:net start mysql,如果服务能正常启动,说明MySQL数据库安装成功。

5、使用初始密码登录mysql

(1)打开windows+R输入cmd,切换盘符至D:\mysql\mysql-8.0.18-winx64\bin目录下,执行:mysql -uroot -p,然后输入初始密码。

(2)当出现mysql>  的时候,说明我们已经连接到数据库,执行:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

来初始密码。

执行成功后,再执行:flush privileges;

(3)至此数据库安装成功,如果想远程连接mysql,请跳转至第9步。

6、如果初始密码无法登录,我们说一下怎么在无密码状态下初始密码。

(1)打开cmd,切换盘符至D:\mysql\mysql-8.0.18-winx64\bin目录下,执行:net stop mysql,关闭数据库服务;

(2)待mysql服务停止后,执行:mysqld --shared-memory --skip-grant-tables,此命令执行后,当前窗口处于锁定状态,我们重新打开一个cmd窗口;

(3)在新的cmd命令窗口,同样的先切换一下盘符,输入mysql -uroot -p,后回车,提示输入密码时直接按回车进入;当出现mysql>  的时候,说明我们已经连接到数据库;

(4)执行use mysql;

(5)执行update user set authentication_string='' where user='root';

说明:网上的update mysql.user set password='newpassword' where user='root';和update mysql.user set password=PASSWORD('newpassword') where User='root';在8.0以上版本已失效。

(6)执行:alter user 'root'@'localhost' identified by '123456';

(7) 如果提示成功,继续执行:flush privileges;如果不成功,则执行:flush privileges;后在执行alter user 'root'@'localhost' identified by '123456';

(8)总之,这一步:flush privileges;不能少,只要成功就执行,不成功也要执行以下。

7、第6步执行完毕后,我们就已经初始化密码了,但是如果使用客户端登陆数据库时会出现:caching-sha2-password的问题,这是mysql在8.0版本更改密码验证规则导致的,为什么更改后就不能登录,我也不知道。如果能正常连接数据库,则忽略第8步。

8、修改密码验证规则,也就是还原到以前的密码验证方式。通过cmd登录mysql数据库,执行:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则 
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用户密码 
FLUSH PRIVILEGES; #刷新权限 

9、解决mysql允许其他IP连接数据库的问题。

登录数据库,依次执行以下语句:

use mysql;
update user set host='%' where user ='root';
flush privileges;
grant all privileges on *.* to 'root'@'%'with grant option;

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值