卸载已安装的MySQL、版本不同的情况下(非重装可跳过)

1. 在控制面板删除MySQL程序(如果有)

windows 安装mysql8 初始化失败 window安装mysql8.0_MySQL

2. 快捷键win+R,输入“regedit”打开注册表

windows 安装mysql8 初始化失败 window安装mysql8.0_database_02

删除以下路径的MySQL(ControlSet可能有多个,如:ControlSet001、ControlSet002)

1. HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL
 
2. HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL

3. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL

3. 删除原来MySQL的文件夹

windows 安装mysql8 初始化失败 window安装mysql8.0_数据库_03


注意:删除前先进入cmd输入net stop mysql指令,这时可能会出现报错,原因可能是该程序被锁住了,解完锁就可以删除,也可以使用软件强行删除粉碎该文件

安装MySQL

1. 下载MySQL8.0

2. 配置my.ini文件在根目录下

windows 安装mysql8 初始化失败 window安装mysql8.0_MySQL_04


配置文件为:自行更改相对应的安装路径及数据存放路径,不需要自己创建数据存放文件夹Data

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\Mysql\mysql-8.0.27-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\Mysql\mysql-8.0.27-winx64\Data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4

3. win+R快捷键输入cmd进入该解压包下的bin目录

3.1

windows 安装mysql8 初始化失败 window安装mysql8.0_mysql_05

3.2 执行mysqld --initialize --console

windows 安装mysql8 初始化失败 window安装mysql8.0_数据库_06


保存随机生成的密码,登录的时候要用到,这是修改密码的关键

**这里的随机密码要去掉前面的空格**

3.3 执行安装指令

mysqld --install [服务名]

windows 安装mysql8 初始化失败 window安装mysql8.0_数据库_07

3.4 利用刚刚的随机密码登录mysql

windows 安装mysql8 初始化失败 window安装mysql8.0_MySQL_08

3.5 修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

4. Navicat连接本地MySQL出现密码错误

windows 安装mysql8 初始化失败 window安装mysql8.0_加密方式_09

问题分析:因为MySQL8.0版本的密码加密方式变了

解决办法:修改该用户的密码加密方式

1. 修改user表,查看user表后可以发现加密方式为caching_sha2_password

windows 安装mysql8 初始化失败 window安装mysql8.0_database_10

2. 修改加密方式

ALTER USER 'root'@'localhost' IDENTIFIED BY 'w123456' PASSWORD EXPIRE NEVER; #修改加密规则

改为mysql_native_password的加密方式

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'w123456';#更新密码

最后就是这种效果了

windows 安装mysql8 初始化失败 window安装mysql8.0_加密方式_11