第一步:mysql下载路径

第二步:将bin目录添加环境变量-系统环境变量-path(这步是为了方便。可以不加)

第三步:在安装目录下创建 my.ini

 

 

 文件内容:

[client]
port=3306
default-character-set=utf8mb4
[mysqld]
port=3306
character_set_server=utf8mb4
#解压目录
basedir=D:/mysql-8.0.21-winx64
#解压目录下data目录
datadir=D:/mysql-8.0.21-winx64/data
federated
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

第四步:初始化数据库并安装、登陆数据库

以管理员身份打开命令提示符(cmd)

1、初始化数据库

生成初始密码,是root@localhost后的字符,我们需要记下来,后面用到。

mysqld --initialize --console

 

 

 2、安装数据库

mysqld --install

 

 

 此时目录会多出了data文件夹

3、启动数据库,并用初始密码登陆

//启动

net start mysql

//登陆

mysql -u root -p

 修改密码完成安装

使用SQL语句修改,比如改为abcd

ALTER USER 'root'@'localhost' IDENTIFIED BY 'abcd';
修改完成以后退出:

exit;

 

 

 #########################

如果需要远程客户端连接,可以执行 

Grant all on *.* to 'root'@'%' identified by 'root' with grant option;

 

use mysql //进入mysql数据库
设置root密码

update user set authentication_string = password('root'), password_expired = 'N', password_last_changed = now() where user = 'root';

  

 

 

 

 

报错:

坑1:MySQL使用net start mysql启动提示(启动失败,服务没有报告任何错误)

查看mysql安装根目录下是否存在data文件夹?此data文件夹不能是手动创建的,因为手动创建的不存在数据文件,需要通过如下命令

mysqld  --initialize-insecure

进行dataDir下数据文件的初始化 ,然后安装根目录下就会出现一个data文件夹,里面会有一堆文件

如果在这个过程中出现了错误,通过以下步骤从新执行

先使用mysqld –remove命令卸载服务

然后在使用mysqld –install命令安装

再使用mysqld  --initialize-insecure初始化

 

或者:

也有可能是这个原因:

添加C:\windows\system32到系统环境变量;添加的时候一定要注意大小写要跟C盘的文件路径相符

 

坑2:[Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'E RROR_FOR_DIVISION_BY_ZERO'

 

问题原因:根目录下data文件夹问题。一般在初始化前手动建立data文件夹会有问题,需要初始化时自动创建。

解决办法:将根目录下data文件夹删除或修改名字,再次执行初始化命令时会自动简历data文件夹。

我是直接改了data的名字就ok了;

坑3:MySQL 连接出现 Authentication plugin 'caching_sha2_password' cannot be loaded

出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password. 

 

用第二种方式 ,解决方法如下

1. 管理员权限运行命令提示符,登陆MySQL(记得添加环境变量)

   mysql -u root -p

   password:                                                                         #登入mysql

2. 修改账户密码加密规则并更新用户密码

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

   ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';   #更新一下用户的密码 

3. 刷新权限并重置密码

   FLUSH PRIVILEGES;   #刷新权限 

 

 

单独重置密码命令:alter user 'root'@'localhost' identified by '111111';

 

再次重新连接就ok了