环境准备 带你安装MySQL和图形化管理工具Workbench
你好,我是朱晓峰。这节课,我来手把手带你安装和配置MySQL。
俗话说,“巧妇难为无米之炊”,我们不能凭空学习理论知识,必须要在实际的MySQL环境中进行操作,这是一切操作的基础。同时,我还会带你安装MySQL自带的图形化管理工具Workbench,我们之后要学习的表的关联、聚合、事务,以及存储过程等,都会用到它。
我会借助图文和音频给你介绍知识重点和操作要领,同时,我还录制了相应的视频,来展示具体的操作细节。你可以根据自己的习惯和需求,选择喜欢的形式来学习。
好了,话不多说,我们先来安装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数据库服务器及相关组件
我给你介绍下这些关键组件的作用。
- MySQL Server:是MySQL数据库服务器,这是MySQL的核心组件。
- MySQL Workbench:是一个管理MySQL的图形工具,一会儿我还会带你安装它。
- MySQL Shell:是一个命令行工具。除了支持SQL语句,它还支持JavaScript和Python脚本,并且支持调用MySQL API接口。
- MySQL Router:是一个轻量级的插件,可以在应用和数据库服务器之间,起到路由和负载均衡的作用。听起来有点复杂,我们来想象一个场景:假设你有多个MySQL数据库服务器,而前端的应用同时产生了很多数据库访问请求,这时,MySQL Router就可以对这些请求进行调度,把访问均衡地分配给每个数据库服务器,而不是集中在一个或几个数据库服务器上。
- 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数据库服务器会占用多大的内存。
- 如果选择开发计算机,MySQL数据库服务会占用所需最小的内存,以便其他应用可以正常运行。
- 服务器计算机是假设在这台计算机上有多个MySQL数据库服务器实例在运行,因此会占用中等程度的内存。
- 专属计算机则会占用计算机的全部内存资源。
这里我们选择配置成“开发计算机”,因为我们安装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数据库服务器,如下图所示:
这是一个图形化的界面,我来给你介绍下这个界面。
- 上方是菜单。左上方是 导航栏,这里我们可以看到MySQL数据库服务器里面的数据库,包括数据表、视图、存储过程和函数;左下方是 信息栏,可以显示上方选中的数据库、数据表等对象的信息。
- 中间上方是工作区,你可以在这里写SQL语句,点击上方菜单栏左边的第三个运行按钮,就可以执行工作区的SQL语句了。
- 中间下方是输出区,用来显示SQL语句的运行情况,包括什么时间开始运行的、运行的内容、运行的输出,以及所花费的时长等信息。
好了,下面我们就用Workbench实际创建一个数据库,并且导入一个Excel数据文件,来生成一个数据表。 数据表是存储数据的载体,有了数据表以后,我们就能对数据进行操作了。
创建数据表
第一步:录入Excel数据
我们打开Excel,在工作簿里面录入数据。
我们这个工作表包括3列,分别是barcode、goodsname、price,代表商品条码、商品名称和售价。然后,我们再录入2条数据。
- 0001,book,3:表示条码为“0001”,商品名称是“book”,价格是3元。
- 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条数据,都可以看到了。
再尝试插入一条语句:
鼠标选中这条语句,点击运行。看到了吗?输出区提示“OK”,运行成功了。现在回过头来选中上面那条查询语句“SELECT * FROM demo.test;”,点击运行,刚才我们插入的那条记录也查询出来了。
到这里,我们就完成了数据库创建、数据表导入和简单的查询。是不是觉得很简单呢?
最后,我还想再讲一下源码获取方法。咱们的课程不要求你阅读源码,但是你可以先学会获取源码的方法,毕竟,这是帮助你提升的重要工具。
MySQL源代码获取
首先,你要进入MySQL 下载界面。 这里你不要选择用默认的“Microsoft Windows”,而是要通过下拉栏,找到“Source Code”,在下面的操作系统版本里面,选择Windows(Architecture Independent),然后点击下载。
接下来,把下载下来的压缩文件解压,我们就得到了MySQL的源代码。
MySQL是用C++开发而成的,我简单介绍一下源代码的组成。
mysql-8.0.22目录下的各个子目录,包含了MySQL各部分组件的源代码:
- sql子目录是MySQL核心代码;
- libmysql子目录是客户端程序API;
- mysql-test子目录是测试工具;
- mysys子目录是操作系统相关函数和辅助函数;
- ……
源代码可以用记事本打开查看,如果你有C++的开发环境,也可以在开发环境中打开查看。
如上图所示,源代码并不神秘,就是普通的C++代码,跟你熟悉的一样,而且有很多注释,可以帮助你理解。阅读源代码就像在跟MySQL的开发人员对话一样,十分有趣。
小结
好了,我们来小结下今天的内容。
这节课,我带你完成了MySQL的安装和配置,同时我还介绍了图形化管理工具Workbench的使用,并且创建了第一个数据库、数据表,也尝试了初步的SQL语句查询。
我建议你用自己的电脑,按照这节课的内容,实际操作一下MySQL的安装、配置,并尝试不同的配置,看看有什么不同,体会课程的内容,加深理解。
最后,还有几点我要着重提醒你一下。
- 我们的MySQL是按照开发计算机进行的最小配置,实际做项目的时候,如果MySQL是核心数据库,你要给MySQL配置更多的资源,就要选择服务器计算机,甚至是专属计算机。
- Root超级用户的密码,你不要忘了,否则只好卸载重新安装。
- 你还可以在Workbench中,尝试一下不同的SQL语句,同时看看不同的工作区、菜单栏的各种按钮,看看它们都是做什么用的。熟悉Workbench,对理解我们后面的知识点,会很有帮助。
课程的最后,我还要给你推荐一下MySQL的 官方论坛。这里面有很多主题,比如新产品的发布、各种工具的使用、MySQL各部分组件的介绍,等等。如果你有不清楚的内容,也可以在里面提问,和大家交流,建议你好好利用起来。
思考题
在导入数据的时候,如果不采用MySQL默认的表名,而是把导入之后的表改个名字,比如说叫demo.sample,该如何操作呢?
欢迎在留言区写下你的思考和答案,我们一起交流讨论。如果你觉得今天的内容对你有所帮助,也欢迎你把它分享给你的朋友或同事,我们下节课见。