MySQL有两种安装方式,一种是使用.msi安装文件按照提示向导安装,另一种是使用压缩包解压缩方式安装,对于喜欢环境干净的小伙伴,一定会选择解压缩的方式安装,接下来我们就来讲述如何在Windows 10下面使用解压缩的方式来安装MySQL8。
1、下载zip安装包
进入MySQL的官网下载MySQL8.0 For Windows的压缩包,点击进入下载页面
进入页面后不需要登录,后点击底部“No thanks, just start my download”即可开始下载,如下图所示:

2、解压zip安装包
将压缩包解压到你存放软件的目录,比如在我这里将安装包解压到D:\Soft目录下面,解压后的安装包目录结构如下图所示:

3、配置环境变量
将解压包bin目录加入到path环境变量值里面,如下图所示:

4、配置初始化的my.ini文件
解压压缩包后我们会发现目录里面没有my.ini,没关系可以自行创建。在安装根目录下添加 my.ini(新建文本文件,将文件类型改为.ini),然后写入基本配置:
然后在安装目录新建一个存放数据文件的目录data,到此现在的安装包目录结构如下图所示:

5、初始化数据库
后续的安装步骤我们会使用到命令行,为了使安装过程不会出现权限问题,需要我们使用管理员的方式启动控制台,在Windows 10以管理员启动控制台的方式非常简单,windows+x快捷键呼叫出操作菜单项,然后选择”Windows PowerShell(管理员)(A)”菜单,如下图所示:

首先进入安装目录的bin目录,然后在执行 mysqld --initialize --console
命令,执行完命令后,会打印root用户初始默认密码,我这里执行结果如下图所示

在图中我们看到命令执行结果有类似如下所示的输出内容:
A temporary password is generated for root@localhost: q;wFajoyO2?J
其中q;wFajoyO2?J
就是root的默认密码,在没有更改密码前,需要记住这个密码,后续登录需要用到。要是你手贱,关快了,或者没记住,那也没事,删掉初始化的data目录,再执行一遍初始化命令,又会重新生成的。
6、安装服务
继续在刚才命令行窗体执行命令mysqld --install [服务名]
,后面的服务名可以不写,默认的名字为 mysql。当然,如果你的电脑上需要安装多个MySQL服务,就可以用不同的名字区分了,比如 mysql5 和 mysql8,在我的电脑中已经安装了mysql5,所以需要设置服务名,如下图所示

然后打开服务面板,再次查看是否有mysql8这个服务器,如下图所示

安装完成之后,我们可以通过命令行来启动服务器,也可以在服务管理面板中启动,下面列举启动和停止服务器命令行:
启动服务:net start mysql8
停止服务:net stop mysql8
下面我们通过命令行启动mysql服务,启动结果如下图所示:

7、修改root密码
由于系统默认生成的mysql密码不方便记忆,所以我需要修改它,当然修改密码的前提是mysql服务器必须启动并且知道原始密码
首先使用mysql -u root -p
命令登录mysql数据库,命令行执行后要求我们输入密码,将root的初始密码输入进去就可以了,登录成功后可以看到下图所示的界面。

登录成功后,执行
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
SQL语法来修改root密码,比如我将密码修改成xuetang9@Mysql
,命令执行效果如下图所示:

然后在新开一个控制台窗体,重新以新密码登录数据库,如果能够成功登录那么表示修改成功。
注意:不要关闭修改密码那个窗体,防止万一你的数据库密码修改错误,还能够重新修改,如果关闭了在找回密码就比较麻烦了
到此,安装部署就完成了。
附加操作
管理员root的host是localhost,代表仅限本机登录访问。如果要允许开放其他ip登录,则需要添加新的host。如果要允许所有ip访问,可以直接修改成“%”。
下面我们来授予root用户具有远程访问权限。
首先创建一root远程账号,执行下面的SQL命令:
CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
然后执行GRANT命令给远程登录root账号赋予权限,下面列举两种权限开放方式。
授予所有访问权:GRANT ALL PRIVILEGES ON *.* TO '账号'@'%';
授权基本的查询修改权限:
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON *.* TO '账号'@'%';
由于root账号拥有所有权限,所以我们需要赋予root账号所有访问权限,执行下面的命令行:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
下面是root账号授权设定,命令行执行截图
