你好,我是朱晓峰。这节课,我来手把手带你安装和配置 MySQL。

俗话说,“巧妇难为无米之炊”,我们不能凭空学习理论知识,必须要在实际的 MySQL 环境中进行操作,这是一切操作的基础。同时,我还会带你安装 MySQL 自带的图形化管理工具 Workbench,我们之后要学习的表的关联、聚合、事务,以及存储过程等,都会用到它。

我会借助图文和音频给你介绍知识重点和操作要领,同时,我还录制了相应的视频,来展示具体的操作细节。你可以根据自己的习惯和需求,选择喜欢的形式来学习。

Sorry, your browser doesn’t support embedded videos.

00:00 / 18:39

好了,话不多说,我们先来安装 MySQL。

安装与配置

首先,我们要下载 MySQL 的安装包,具体做法是,打开浏览器,输入网址:https://dev.mysql.com,进入 MySQL 的开发者专区进行下载。

在下载界面,你会看到需要选择操作系统。这是因为,MySQL 可以在多种操作系统平台上运行,包括 Windows、Linux、macOS 等,因此,MySQL 准备了针对不同操作系统平台的安装程序。这里我们主要介绍 MySQL 在 Windows 操作系统上的安装。因为 Windows 平台应用得最广泛,而且图形化操作也比较简单。

当然,如果你想了解 Linux 平台和 macOS 平台上的安装和配置,也可以通过官网https://dev.mysql.com/doc/refman/8.0/en/linux-installation.html 和https://dev.mysql.com/doc/refman/8.0/en/osx-installation.html 来进行查看。不同平台上的 MySQL 会略有不同,比如,同样的机器配置,Linux 上的 MySQL 运行速度就比 Windows 快一些,不过它们支持的功能和 SQL 语法都是一样的,即使你使用的是其他系统,也不会影响到我们的学习。

好了,下载完成之后,我们就可以开始安装了。接下来我给你介绍下安装步骤。

第一步:点击运行下载的安装程序,安装 MySQL 数据库服务器及相关组件

我给你介绍下这些关键组件的作用。

  1. MySQL Server:是 MySQL 数据库服务器,这是 MySQL 的核心组件。
  2. MySQL Workbench:是一个管理 MySQL 的图形工具,一会儿我还会带你安装它。
  3. MySQL Shell:是一个命令行工具。除了支持 SQL 语句,它还支持 JavaScript 和 Python 脚本,并且支持调用 MySQL API 接口。
  4. MySQL Router:是一个轻量级的插件,可以在应用和数据库服务器之间,起到路由和负载均衡的作用。听起来有点复杂,我们来想象一个场景:假设你有多个 MySQL 数据库服务器,而前端的应用同时产生了很多数据库访问请求,这时,MySQL Router 就可以对这些请求进行调度,把访问均衡地分配给每个数据库服务器,而不是集中在一个或几个数据库服务器上。
  5. Connector/ODBC:是 MySQL 数据库的 ODBC 驱动程序。ODBC 是微软的一套数据库连接标准,微软的产品(比如 Excel)就可以通过 ODBC 驱动与 MySQL 数据库连接。

其他的组件,主要用来支持各种开发环境与 MySQL 的连接,还有 MySQL 帮助文档和示例。你一看就明白了,我就不多说了。

好了,知道这些作用,下面我们来点击“Execute”,运行安装程序,把这些组件安装到电脑上。

第二步:配置服务器

等所有组件安装完成之后,安装程序会提示配置服务器的类型(Config Type)、连接(Connectivity)以及高级选项(Advanced Configuration)等,如下图所示。这里我重点讲一下配置方法。

我们主要有 2 个部分需要配置,分别是服务器类别服务器连接

先说服务器类别配置。我们有 3 个选项,分别是开发计算机(Development Computer)、服务器计算机(Sever Computer)和专属计算机(Dedicated Computer)。它们的区别在于,MySQL 数据库服务器会占用多大的内存

  1. 如果选择开发计算机,MySQL 数据库服务会占用所需最小的内存,以便其他应用可以正常运行。
  2. 服务器计算机是假设在这台计算机上有多个 MySQL 数据库服务器实例在运行,因此会占用中等程度的内存。
  3. 专属计算机则会占用计算机的全部内存资源。

这里我们选择配置成“开发计算机”,因为我们安装 MySQL 是为了学习它,因此,只需要 MySQL 占有运行所必需的最小资源就可以了。如果你要把它作为项目中的数据库服务器使用,就应该配置成服务器计算机或者专属计算机。

再来说说 MySQL 数据库的连接方式配置。我们也有 3 个选项:网络通讯协议(TCP/IP)、命名管道(Named Pipe)和共享内存(Shared Memory)。命名管道和共享内存的优势是速度很快,但是,它们都有一个局限,那就是只能从本机访问 MySQL 数据库服务器。所以,这里我们选择默认的网络通讯协议方式,这样的话,MySQL 数据库服务就可以通过网络进行访问了

MySQL 默认的 TCP/IP 协议访问端口是 3306,后面的 X 协议端口默认是 33060,这里我们都不做修改。MySQL 的 X 插件会用到 X 协议,主要是用来实现类似 MongoDB 的文件存储服务。这方面的知识,我会在课程后面具体讲解,这里就不多说了。

高级配置(Show Advanced)和日志配置(Logging Options),在咱们的课程中用不到,这里不用勾选,系统会按照默认值进行配置。

第三步:身份验证配置

关于 MySQL 的身份验证的方式,我们选择系统推荐的基于 SHA256 的新加密算法 caching_sha2_password。因为跟老版本的加密算法相比,新的加密算法具有相同的密码也不会生成相同的加密结果的特点,因此更加安全。

第四步:设置密码和用户权限

接着,我们要设置 Root 用户的密码。Root 是 MySQL 的超级用户,拥有 MySQL 数据库访问的最高权限。这个密码很重要,我们之后会经常用到,你一定要牢记。

第五步:配置 Windows 服务

最后,我们要把 MySQL 服务器配置成 Windows 服务。Windows 服务的好处在于,可以让 MySQL 数据库服务器一直在 Windows 环境中运行。而且,我们可以让 MySQL 数据库服务器随着 Windows 系统的启动而自动启动。

图形化管理工具 Workbench

安装完成之后,我再给你介绍一下 MySQL 自带的图形化管理工具 Workbench。同时,我还会用 Workbench 的数据导入功能,带你导入一个 Excel 数据文件,创建出我们的第一个数据库和数据表。

首先,我们点击 Windows 左下角的“开始”按钮,如果你是 Win10 系统,可以直接看到所有程序,如果你是 Win7 系统,需要找到“所有程序”按钮,点击它就可以看到所有程序了。

接着,找到“MySQL”,点开,找到“MySQL Workbench 8.0 CE”。点击打开 Workbench,如下图所示:

左下角有个本地连接,点击,录入 Root 的密码,登录本地 MySQL 数据库服务器,如下图所示:

这是一个图形化的界面,我来给你介绍下这个界面。

  1. 上方是菜单。左上方是导航栏,这里我们可以看到 MySQL 数据库服务器里面的数据库,包括数据表、视图、存储过程和函数;左下方是信息栏,可以显示上方选中的数据库、数据表等对象的信息。
  2. 中间上方是工作区,你可以在这里写 SQL 语句,点击上方菜单栏左边的第三个运行按钮,就可以执行工作区的 SQL 语句了。
  3. 中间下方是输出区,用来显示 SQL 语句的运行情况,包括什么时间开始运行的、运行的内容、运行的输出,以及所花费的时长等信息。

好了,下面我们就用 Workbench 实际创建一个数据库,并且导入一个 Excel 数据文件,来生成一个数据表。数据表是存储数据的载体,有了数据表以后,我们就能对数据进行操作了

创建数据表

第一步:录入 Excel 数据

我们打开 Excel,在工作簿里面录入数据。

我们这个工作表包括 3 列,分别是 barcode、goodsname、price,代表商品条码、商品名称和售价。然后,我们再录入 2 条数据。

  1. 0001,book,3:表示条码为“0001”,商品名称是“book”,价格是 3 元。
  2. 0002,pen,2:表示条码是“0002”,商品名称是“pen”,价格是 2 元。

注意,我在录入商品条码的时候,打头用了一个单引号,这是为了告诉 Excel,后面是文本,这样系统就不会把 0001 识别为数字了。

录入完成之后,我们把这个文件存起来,名称是 test,格式采用“CSVUTF-8(逗号分隔)”。这样,我们就有了一个 CSV 文件 test.csv。

第二步:编码转换

用记事本打开文件,再用 UTF-8 格式保存一次,这是为了让 Workbench 能够识别文件的编码。

第三步:数据导入

准备好数据文件以后,我们回到 Workbench,在工作区录入命令:create database demo;,在工作区的上方,有一排按钮,找到闪电标识的运行按钮,点击运行。

这时,下方的输出区域的运行结果会提示“OK”,表示运行成功。此时,把光标放到左边的导航区,点击鼠标右键,刷新全部,新创建的数据库“demo”就出现了。

点击数据库 demo 左边的向右箭头,就可以看到数据库下面的数据表、视图、存储过程和函数。当然,现在都是空的。光标选中数据表,鼠标右键,选择“Table Data Import Wizard”,这时会弹出数据文件选择界面。选中刚才准备的 test.csv 文件,点击下一步,Workbench 会提示导入目标数据表,我们现在什么表也没有,所以要选择创建新表“test”。点击下一步,Workbench 会提示配置表的字段,其实它已经按照数据的类别帮我们配置好了。

这时候,再次点击下一步,点击运行,完成数据表导入。光标放到左边的导航区,选中我们刚刚创建的数据库“demo”中的数据表,鼠标右键,点击刷新全部,刚刚导入的数据表“test”就显示出来了。

进行查询

现在我们已经有了数据库,也有了数据表,下面让我们尝试一个简单的查询。

在工作区,录入SELECT * FROM demo.test;(这里的 demo 是数据库名称,test 是数据表名称,* 表示全部字段)。

用鼠标选中这行查询命令,点击运行。工作区的下半部分,会显示查询的结果。我们录入的 2 条数据,都可以看到了。

再尝试插入一条语句:

INSERT INTO demo.test
VALUES (‘0003’,‘橡皮’,5);

鼠标选中这条语句,点击运行。看到了吗?输出区提示“OK”,运行成功了。现在回过头来选中上面那条查询语句“SELECT * FROM demo.test;”,点击运行,刚才我们插入的那条记录也查询出来了。

到这里,我们就完成了数据库创建、数据表导入和简单的查询。是不是觉得很简单呢?

最后,我还想再讲一下源码获取方法。咱们的课程不要求你阅读源码,但是你可以先学会获取源码的方法,毕竟,这是帮助你提升的重要工具。

MySQL 源代码获取

首先,你要进入 MySQL下载界面。这里你不要选择用默认的“Microsoft Windows”,而是要通过下拉栏,找到“Source Code”,在下面的操作系统版本里面,选择 Windows(Architecture Independent),然后点击下载。

接下来,把下载下来的压缩文件解压,我们就得到了 MySQL 的源代码。

MySQL 是用 C++ 开发而成的,我简单介绍一下源代码的组成。

mysql-8.0.22 目录下的各个子目录,包含了 MySQL 各部分组件的源代码:

  1. sql 子目录是 MySQL 核心代码;
  2. libmysql 子目录是客户端程序 API;
  3. mysql-test 子目录是测试工具;
  4. mysys 子目录是操作系统相关函数和辅助函数;
  5. ……

源代码可以用记事本打开查看,如果你有 C++ 的开发环境,也可以在开发环境中打开查看。

如上图所示,源代码并不神秘,就是普通的 C++ 代码,跟你熟悉的一样,而且有很多注释,可以帮助你理解。阅读源代码就像在跟 MySQL 的开发人员对话一样,十分有趣。

小结

好了,我们来小结下今天的内容。

这节课,我带你完成了 MySQL 的安装和配置,同时我还介绍了图形化管理工具 Workbench 的使用,并且创建了第一个数据库、数据表,也尝试了初步的 SQL 语句查询。

我建议你用自己的电脑,按照这节课的内容,实际操作一下 MySQL 的安装、配置,并尝试不同的配置,看看有什么不同,体会课程的内容,加深理解。

最后,还有几点我要着重提醒你一下。

  1. 我们的 MySQL 是按照开发计算机进行的最小配置,实际做项目的时候,如果 MySQL 是核心数据库,你要给 MySQL 配置更多的资源,就要选择服务器计算机,甚至是专属计算机。
  2. Root 超级用户的密码,你不要忘了,否则只好卸载重新安装。
  3. 你还可以在 Workbench 中,尝试一下不同的 SQL 语句,同时看看不同的工作区、菜单栏的各种按钮,看看它们都是做什么用的。熟悉 Workbench,对理解我们后面的知识点,会很有帮助。

课程的最后,我还要给你推荐一下 MySQL 的官方论坛。这里面有很多主题,比如新产品的发布、各种工具的使用、MySQL 各部分组件的介绍,等等。如果你有不清楚的内容,也可以在里面提问,和大家交流,建议你好好利用起来。

思考题

在导入数据的时候,如果不采用 MySQL 默认的表名,而是把导入之后的表改个名字,比如说叫 demo.sample,该如何操作呢?

欢迎在留言区写下你的思考和答案,我们一起交流讨论。如果你觉得今天的内容对你有所帮助,也欢迎你把它分享给你的朋友或同事,我们下节课见。