本人前不久把电脑Win10 x64系统给重置了,阅读官方文档,正打算把MySQL下载安装的时候,萌生了专门为萌新写一篇MySQL安装教程的想法(请按照顺序操作哦)

  • 安装教程的更新换代速度较快,本教程长时间维护、更新!保证质量
  • 由于不可抗原因,会出现官网访问缓慢,下载缓慢,甚至下载失败的问题;特在文中提供对应的网盘链接,需要的自取
  • 系统:Win10 x64系统
  • 下载版本:社区版(因为它免费使用啊)
  • 目标人群:初学MySQL的萌新
  • MySQL官网:https://www.mysql.com/

目录一:一些屁话

其实最好的教程在官方文档中,但是语言成为了一个巨大的障碍,现在没有哪个萌新刚刚接触编程就直接从官方那里开始学习的吧?没有的吧…

  1. 有一些话不吐不快,关于网络上有很多关于MySQL的安装教程的乱象:虽然教程非常之多,但是重质化太严重了、内容片面化、标题太大而文不配题…

  2. 注意!我没有批判爱心发电,用心写安装教程的博主们的意思,每一个热心分享的人都值得尊敬,我还是萌新的时候也是在热心博主们的分享下才安装好自己的第一个MySQL及其余编程工具。

  3. 我最不认同的是网络上充斥了鱼龙混杂的教程的乱象,充斥着大量素质低下的某些人,他们只会Ctrl + c,然后 Ctrl + v,污染了中文搜索环境。

  4. 而且还存在一些无可奈何的问题,比如:

    • 大量教程过时,由于版本更新的问题:系统版本更新、工具版本更新,而且这种内容鲜少有博主进行持续维护
    • 只苍白的告诉你下一步,对于这一点我其实很无语,高手不看安装教程,而新手只能迷惘的跟着操作
    • 或者只是一个笔记(新手看的一脸懵)
    • 还有很重要的一点,很多博主由于自己电脑配置的很齐全,而忽视了告诉读者一个信息:MySQL安装之前,还需要安装一些依赖的工具
    • 萌新按照网络上的教程不幸出现了问题,又开始搜索问题解决办法,恶性循环开始了。
  • 刚刚接触到这个世界(IT),
  • 我为什么要先下载工具?
  • 哦,那我开始了
  • 却在安装部分处处碰壁,
  • 老师告诉我,编程的世界多么宏大,
  • 我却在最初的起点折戟沉沙,
  • 问题终于解决了,一天的时光却过去了

补充:如果你不想将MySQL安装在C盘

  • MySQL8.0安装的默认位置为:C:\Program Files\MySQL\MySQL Server 8.0
  • MySQL8.0数据存放的默认位置为:C:\Program Files\MySQL\MySQL Server 8.0\data
  • 如果你想修改安装位置、数据存放位置:
    • 要么使用目录三的操作方式(免安装方式)
    • 要么对我目录四的操作方式(installer),在 “第三步:安装” 的一开始进行一点修改:(如下所示)

在这个界面中,请选择最下面的 Custom,点击Next

(图片显示的界面会与你的有所区别,但是不影响你的操作)

在打开的对话框中,输入你想要的路径吧,然后点击Next,其余操作与"目录四的操作方式(installer)"相同了

目录二:MySQL发行格式

MySQL社区版下载网页中可以看到MySQL提供了各种发行格式的下载链接,让懵懂的你眼花缭乱

莫慌,听我细细为你道来

  • 前面三玩意是给Linux系统用户提供的
  • MySQL Community Server
    • MySQL数据库的服务端,MySQL的核心,只下载它就可以使用MySQL进行数据的存储
    • 下载后还附带命令行工具(其实没有命令行工具,我们也可以使用Win10自带的终端:cmd、powelshell来操作MySQL)
    • 推荐萌新使用此类型,使用命令行工具来学习MySQL语言
    • 免安装版请看目录三,安装版请看目录四;按照目录三操作,可以无脑安装;按照按照目录四操作,虽然折腾了一点,但是可以拓宽萌新的视野
  • MySQL Cluster
    • MySQL Cluster 是一组计算机构成,适合于分布式计算环境的高实用、高冗余版本。它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器
    • 所以呢,萌新退避,不用管它
  • MySQL Router
    • MySQL Router 是一个介于应用层和DB层之间的开源的轻量级中间件,它能够将前端应用的请求分析转发给后端DB服务器处理,从而实现DB的负载均衡;使用这种架构,前端应用不用直接连接DB Server,而仅仅是连接到MySQL Router,能够很方便地实现数据库集群的扩展
    • 所以呢,萌新退避,不用管它
  • MySQL Shell
    • MySQL Shell 是一个高级的mysql命令行工具、它支持两种模式(交互式、批处理式)和三种语言(JavaScript、Python、SQL)
    • 初学者可以尝试使用一下
  • MySQL Workbench
    • 操作MySQL的图形化编辑器
    • 推荐萌新有一定基础的MySQL知识后再下载使用,目的是为了你更好的学习MySQL
  • MySQL Installer for Windows
    • MySQL Installer 是一个独立的应用程序,旨在减轻安装和配置在Microsoft Windows上运行的MySQL产品的复杂性,支持以下的MySQL产品:
      • MySQL Servers
      • MySQL Workbench, MySQL Shell,MySQL Router,MySQL for Visual Studio,MySQL for Excel,MySQL Notifier
      • MySQL Connector/NET,MySQL Connector/Python,MySQL Connector/ODBC,MySQL Connector/J,MySQL Connector/C++
      • 文档和样例
    • 官方推荐给Windows用户的下载方式,我们可以通过它选择自己想要下载的,比如可以只下载MySQL Community Server
  • MySQL for Excel
    • MySQL附件,它能让我们在Microsoft Excel中处理MySQL数据
    • 此附件坑较多,慎踩
  • MySQL for Visual Studio
    • 如果你用的是Visual Studio来编写代码,并且要用Visual Studio来连接数据库进行表管理就需要装这个
  • MySQL Notifier
    • MySQL Notifier 是一款 MySQL 数据库的辅助工具。它可以在系统任务栏通知区域(
      系统托盘)处驻留图标,用于快捷监视、更改服务器实例(服务)的状态。同时,也可以与一些图形化管理工具(如 MySQL Workbench)集成使用。
    • 使用MySQL时必须要开启其服务,而 MySQL Notifier 正是应对于此
    • 可下,可不下
  • 通过编程语言来使用MySQL数据库,需要下列驱动器

    学习MySQL语言的目的不就是为了使用某一门编程语言来使用MySQL数据库嘛
  • MySQL Benchmark Tool
    • 基准测试工具
    • 所以呢,萌新退避,不用管它
  • 最后两个

    前者:时区管理包,萌新退避,不用管它
    后者:指向的网址提供了各种MySQL产品的存档版本

目录三:MySQL Community Server 免安装下载(noninstall)

第一步:下载

强烈推荐萌新直接下载此类型,使用命令行工具来学习MySQL语言

(1)点击 MySQL社区版下载网页

(2)确认你选择的是Windows系统
在这里插入图片描述
(3)此时,你看到了两个下载链接,它们是怎么回事呢?
在这里插入图片描述
这两者提供给我们的都是zip压缩包(即:免安装版),但是需要自己去配置信息

第二个zip压缩包还包括MySQL基准测试套件,萌新退避,下载第一个即可

(4)找到跳转页面中的 “No thanks, just start my download.” ,点击这行文本,下载就开始了
在这里插入图片描述
若你通过官网下载缓慢、甚至下载失败,请使用我提供的百度网盘链接

第一步补充:下载依赖

  • 在Windows平台上,MySQL仅适用于Microsoft Windows 64位操作系统
  • 在Windows平台中,MySQL 8.0 Server 依赖 Microsoft Visual C++ 2015 Redistributable Package 来运行

在安装MySQL之前,Microsoft Visual C++ 2015 Redistributable Package 要安装在Windows系统上

官网下载地址、我在网盘上直接分享给你;两个方式,自己选吧

  1. 官网下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=48145
  2. 蓝奏云链接:vc_redist.x64.exe

第二步:解压

在这里插入图片描述
我的解压在了E:\program-Utils\MySQL\mysql-8.0.19-winx64,请你自己选择一个解压目录

  • 为了避免问题,强烈推荐使用的解压目录的路径名使用英文

  • 某些解压缩工具可能会将zip解压到你选择的安装位置内的文件夹中,请手动移动一下呀

第三步:配置 option 文件

通过配置option文件,我们可以修改MySQL8.0的安装位置及其数据存放位置,还可以对内存,缓存或InnoDB进行配置

在解压目录下,创建 my.ini 文件或者 my.cnf 文件(注意:最好只创建其中一个),并在文件中根据自身需求模仿我输入以下内容

在option文件中

  1. 注释以 #; 开头
  2. 每行仅指定一个选项
  3. [group] 中 group 代表一个组名,是要为其设置选项的程序或组的名称
    例如 [mysqld] 适用于mysqld服务器
  4. opt_name=value 即 给选项赋值,值还可以使用单引号、双引号包裹起来

设置MySQL8.0安装目录、MySQL8.0数据存储目录

路径中要么使用正斜杠

[mysqld]
# 安装目录(此处需要填写你的解压目录哟)
basedir=E:/program-Utils/MySQL/mysql-8.0.19-winx64
# 数据存储目录
datadir=D:/mysql/data

要么使用双反斜杠(这与转义字符有关)

[mysqld]
# 安装目录(此处需要填写你的解压目录哟
basedir=E:\\program-Utils\\MySQL\\mysql-8.0.19-winx64
# 数据存储目录
datadir=D:\\mysql\\data

注意:书写路径的时候请将输入法切换为英文

刚刚开始学习MySQL的路程,option 文件就这样配置吧,随着你日后熟悉MySQL,你会在使用的过程中逐渐掌握配置 option 文件的技巧

第四步:配置环境变量

配置环境变量是为了,我们能够在终端(cmd、PowelShell)中,或者其余编辑器中运行MySQL

此电脑 > 属性 > 高级系统设置 > 高级 > 环境变量

你会看到两个上下两个界面,上面的是用户变量窗口、下面的是系统变量窗口,两个窗口中都有Path,对于萌新来说,选中其中一个Path来进行编辑就可以了

在输入框中输入你的解压目录\bin

补充:

  • MySQL8.0安装的默认位置为:C:\Program Files\MySQL\MySQL Server 8.0
  • 如果你是使用的installer安装MySQL
  • 请在输入框中输入C:\Program Files\MySQL\MySQL Server 8.0\bin

连续点击三次确定!!!确保最后三个对话框都被关闭

第五步:初始化 data 目录

通过免安装方法下载的ZIP文件中不包含data目录。我们需要通过创建数据目录并填充mysql系统数据库中的表来初始化MySQL安装

有两个命令可以使用

  • mysqld --initialize:生成随机的初始root密码
  • mysqld --initialize-insecure:不会生成root密码

来吧!!!

键盘同时按下 win + x,你会看到

点击 Windows PowerShell(管理员),必须以管理员的身份来启动PowelShell

在PowelShell中输入(你先别输入啊,你要根据自身情况修改、再看一看我给你的防坑指南)

mysqld --defaults-file=option文件路径 --initialize-insecure --console
  • 因为第四步中我们已经配置了环境变量,所以可以在任意路径下的PowelShell中执行 mysqld 命令
  • --defaults-file=option文件路径,option文件路径即第三步配置的option文件的路径
  • 在Windows上,使用 --console选项 会将消息定向到控制台

此处有坑,请避开

  • 比如说,在option文件中你的数据存储目录为datadir=D:\\mysql\\data
  • 最终目录为data
  • 首先确保你的电脑上存在data文件夹的上一级目录(我的是D:\mysql),没有就创建此文件夹,不然会报错
  • 然后不要创建data文件夹,不然会报错的,有就删掉它

第六步:命令行启动MySQL服务器

以下命令请在终端中输入,cmd 或者 PowelShell

 mysqld --console

命令输入,敲击回车后,会有信息在终端中输出,当你看到 ready for connections. Version: ‘8.0.19’ socket: ‘’ port: 3306 MySQL Community Server - GPL. 说明服务启动了

不过,这里有一点很令人无语,就是这个终端窗口你不能再输入命令了(成为了服务端)

  • 想要继续使用终端输入命令,不得不打开新的终端(cmd或者PowelShell)来作为客户端,
  • 关闭这个窗口就可以把MySQL服务器关掉了
  • 在新的终端中输入mysqladmin -u root shutdown,也可以关闭MySQL服务器

所以,才有了第七步呀

第七步:将MySQL服务安装为Windows服务

提前说明,第七步为第六步的升级版

请以管理员方式打开PowelShell或者cmd

有以下命令供你选择

命令一:

mysqld --install

看到 Service successfully installed. 代表你成功将MySQL服务安装为Windows服务

通过命令一安装的Windows服务

  • 默认的服务名为MySQL
  • 启动类型是开机自启

命令二:

mysqld --install
  • 默认的服务名为MySQL
  • 启动类型不是开机自启

命令三:

mysqld --install 服务名
  • 可以指定服务名
  • 经过实践发现此命令存在大坑,服务名以某些特殊的单词结尾时,竟然无法启动此服务(比如:install);而且完全不知道该到哪里寻找这方面的说明,不知道还有没有大坑
  • 所以,若你打算通过命令三来安装Windows服务,请马上尝试启动服务,若无法启动请观看第七步补充,将其移除,重新输入命令,更换服务名

扩展一下你的眼界:

Windows服务可以在注册表中进行设置的,我只是给你看看啊,没基础千万别动它

  • win + r,打开运行窗口,在输入框中输入regedit;
  • 我已经将MySQL安装到了Windows上,并使用的默认名:
  • 定位到:计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL
  • 为什么和你讲这个呢?如果你以后想在电脑上安装多个不同版本的MySQL,注册表必须要进行相应的修改或添加内容,还要修改option文件,给你留个印象哦

你可能会问,欸,服务名有什么用啊?

假设我使用的是命令一,
就可以在终端中使用net start mysql启动MySQL的服务了;通过命令net stop mysql停止服务

net start mysqlnet stop mysql这两个命令的第三个值就是服务名,因为命令一中没有配置服务名,所以使用的是默认的用户名:MySQL

然后,
键盘同时按下 win + r,在运行窗口的输入框中输入services.msc,打开服务启动管理器

看到名称了吧,也是MySQL

  • 不过很蛋疼的是,net start 服务名net stop 服务名都需要管理员权限才能运行
  • net startnet stop 是Windows中开启关闭服务的命令

第八步:配置 root 密码

以下命令请在终端中输入,cmd或者PowelShell

  1. 连接到MySQL服务器

(1.1)如果你在第五步中使用的是mysqld --initialize-insecure命令(我就是用的这个命令),请这么输入

mysql -u root --skip-password

(1.2)如果使用的是mysqld --initialize,请这么输入

mysql -u root -p

然后输入第五步中它给你分配的密码

  1. 进入到MySQL命令行

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.19 MySQL Community Server - GPL
 
Copyright © 2000, 2020, Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
 
mysql>

  1. 使用ALTER USER语句分配新的root密码

在MySQL命令行中输入

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

推荐初学者将密码设置为root即可,这样不会忘记

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
Query OK, 0 rows affected (0.10 sec)

第九步:测试MySQL安装

在终端中依次输入以下命令

mysqlshow -u root -p
mysqlshow mysql -u root -p 
mysqladmin version status proc -u root -p
mysql -e "SELECT User, Host, plugin FROM mysql.user" mysql -u root -p
  • 三个命令中都要包括-u root -p
  • -u root 表明以root身份登录,-p 参数表示需要输入密码
  • 如果你不加上-u root -p,会报错:Access denied for user ‘ODBC’@‘localhost’ (using password: NO),如果你在网上搜解决办法,头都是大的,基本不能对症解决问题

第十步:命令行使用MySQL

mysql>

中,可以开始你的MySQL学习之路了

退出MySQL交互式命令行也很简单:键盘同时按下 Ctrl + z,然后回车

  • 恭喜你,走到了最后,你可以告诉自己:你真棒!
  • 虽然你还只是一个初学者,但愿意折腾的你,走上了免安装的坎坷之路,限于眼界我无法将全部问题都说出来,无论你是默默的解决你遇到的千奇百怪的问题,还是勇于在评论区提出问题。
  • 祝福你,愿你扶摇直上九万里

第七步补充:在Windows服务中移除MySQL服务

在输入以下命令时,请先将对应的服务停止

如果你使用的是命令一或者命令二(即没有手动配置服务名),请以管理员权限输入

mysqld --remove

看到 Service successfully removed.,代表你成功移除了

如果你使用的是命令三(即手动配置服务名),请以管理员权限输入

mysqld --remove 服务名

目录四:MySQL Community Server 安装包下载(installer)

通过MYSQL官方提供的 Installer 方式,选择性安装 MySQL Community Server

第一步:下载

(1)点击 MySQL社区版下载网页

(2)第一个是web安装包,启用后帮你联网下载MySQL;请选择第二个

与标准的MySQL Installer不同,web安装包不捆绑任何MySQL应用程序,但会下载您选择安装的MySQL产品

(3)找到跳转页面中的 “No thanks, just start my download.” ,点击这行文本,下载就开始了
在这里插入图片描述

若你通过官网下载缓慢、甚至下载失败,请使用我提供的百度网盘链接

第二步:安装之前的准备

MySQL Installer 需要 Microsoft .NET Framework 4.5.2或更高版本

第三步:安装

虽然我的目的是通过installer只安装 MySQL Community Server,但是通过我的对安装流程的讲解,你将学会自定义你的MySQL安装

installer 安装有一个优点,仅仅只是决定你这一次的安装,你以后可以安装更多的MySQL产品或者进行更新

概览:安装流程

一: 运行msi文件

二:选择Server only

在初始设置期间,系统会提示您选择要在主机上安装的MySQL产品,installer 支持安装的MySQL产品有:

  • MySQL Servers
  • MySQL Workbench, MySQL Shell,MySQL Router,MySQL for Visual Studio,MySQL for Excel,MySQL Notifier
  • MySQL Connector/NET,MySQL Connector/Python,MySQL Connector/ODBC,MySQL Connector/J,MySQL Connector/C++
  • 文档和样例

此时你有五个选择:

  1. Developer DefaultFull,都是全部安装,安装产品如下图所示

  2. Server only,仅仅只安装MySQL server,但它使用默认的安装和数据路径,本文采用此类型,然后点击Next

    • MySQL8.0安装的默认位置为:C:\Program Files\MySQL\MySQL Server 8.0
    • MySQL8.0数据存放的默认位置为:C:\Program Files\MySQL\MySQL Server 8.0\data
  3. Client only,不安装MySQL server,安装产品如下图所示,适合于给你电脑上已经存在的MySQL Server 安装应用程序

  4. Custom,自定义安装类型

三:检查依赖环境(如果你电脑上缺乏依赖,会有这一步)

再上一步你选择了安装类型,当你点击Next之后,如果你电脑上缺乏依赖,会出现如下提示(下图是我很久以前安装MySQL5.7的图片,那时候缺乏需要的 Microsoft Visual C++ 2013 Redistributable Package)

本篇教程是安装MySQL8.0,它所需要的环境依赖为:Microsoft Visual C++ 2015 Redistributable Package(所以界面显示上有一点不一样)

先点击右下方按钮 Execute,等待其安装完依赖包,再点击 Next

四:安装

点击Execute,安装MySQL产品(根据我在前面的选择,只有MySQL Server)

请等待其安装完毕

安装完成后:

点击Next

五:MySQL配置

配置界面出现

点击Next

五 - 1:High Availability

  • Standalone MySQL Server / Classic MySQL Replication (默认)
    • 选择此选项可将一个MySQL实例配置为作为独立数据库服务器运行
  • InnoDB cluster
    • 选择此选项可创建或扩展基于MySQL Group Replication的InnoDB集群解决方案,听不懂对吧,请萌新退避

点击Next

五 - 2:Type and Networking

  • 这个界面,推荐使用默认选项、默认值
  • Config Type 你要告诉MySQL安装程序,你安装MySQL的用途是什么?
    • 根据您的选择,在您的电脑上,它将会定义分配多少系统资源(内存)给您的 MySQL Server
    • 如果你是在你的个人电脑上学习MySQL,推荐使用默认的 Development Computer
    • 另外两个选项,Server、Dedicated,根据英文意思:前者是服务,后者是专用;不要选错了哦,这会使MySQL Server极大的占用你电脑上的内存资源(简单来说:你电脑会卡)
  • 端口号Port:
    • 数据库相当于是一个服务器,
    • 我们把自己写的表格资源存在数据库服务器中,
    • 我们通过发送指令(SQL)让数据库服务器帮我们找寻需要的表格资源
    • 数据库是服务端,我们需要一个客户端来访问;服务端和客户端,底层是通过TCP/IP协议来连接的
    • 使用默认的端口号3306(除非你电脑上的端口号3306已经被某个软件占用了)
    • 如果端口号已被占用,您会在端口号默认值旁边看到信息图标(一个感叹号),请提供新的端口号
  • 界面中还有一些设置,我没有讲,因为萌新现在的程度用不到

点击Next

五 - 3: Authentication Method

  • 仅在安装或升级MySQL 8.0.4或更高版本时,才会有这一个步骤
  • 它引入了两个服务器端身份验证选项之间的选择,你将在下一步中创建的MySQL用户帐户将使用在此步骤中选择的身份验证方法
  • 请使用默认选项,Use Strong Password Encryption for Authentication (RECOMMENDED),它更加强大好用
  • 之所以还给出下面那个选项,是给特定的MySQL老用户使用的

点击Next

五 - 4:Accounts and Roles

我们在安装MySQL数据库的时候,我们的身份相当于SYSDBA,数据库给我们提供一个默认操作数据库的超级账号:

  • 账号名字root
  • 账号密码我们自己设置,我为了免得麻烦,直接把密码也设置为root
  • 请记住root账户的密码哦

点击Next

五 - 5:Windows Service

  • 请记住,MySQL数据库我在上面也说到过,MySQL也是一个安装在你电脑上的服务器,如果你要使用它(存储、修改数据),必须要先开启MySQL服务
  • 如果你懒得每次使用MySQL都要手动打开MySQL,请勾选服务开机自启

如果不进行此项配置,也是可以的,相关内容请查看:

本文章目录三:
在这里插入图片描述

五 - 6:Apply Server Configuration

当您单击Execute时,所有配置设置都将应用于MySQL服务器

安装界面可能,你可以直接叉掉了,或者再点击两下

安装完成后,不要删除installer文件哦

你以后还可以点击这个安装程序,来安装更多MySQL产品


参考文章:

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐