第 3 章MySQL的安装和配置 学习目标: .掌握MySQL 的安装和配置; .掌握MySQL 的启动和关闭; .掌握MySQL 的登录和退出。 MySQL 是由瑞典MySQLAB 公司开发的数据库管理系统,由于其体积 小、速度快且完全免费开源,总体拥有成本低,故一般的中小型企业都乐于选 择它作为其网站数据库,因此成为了全球最受欢迎的数据库管理系统之一。 3.MySQL 概述 1 MySQL 是一款单进程多线程、支持多用户、基于客户端/服务器(Client/ Server,C/S)的关系数据库管理系统。它是开源软件,所谓的开源软件是指 该类软件的源代码可被用户任意获取,并且这类软件的使用、修改和再发行 的权利都不受限制。开源的主要目的是提升程序本身的质量。MySQL 可以 从其官方网站下载。MySQL 以快速、便捷和易用作为发展的主要目标。 1.MySQL的优势 (1)成本低:开放源代码,社区版本可以免费使用。 (2)性能好:执行速度快,功能强大。 (3)值得信赖:很多大型公司,如Yahoo、Google、Youtube、百度等公司 都在使用。 (4)操作简单:安装方便快捷,有多个图形客户端管理工具(MySQL Workbench/Navicat等客户端,MySQLFront,SQLyog)和一些集成开发 环境。 (5)兼容性好:可以安装在多种操作系统上,跨平台性好,不存在32 位 和64 位机的不兼容问题及无法安装的问题。 2.MySQL的特点 (1)支持多线程,可充分利用CPU 资源。 30  MySQL 8.0 数据库原理与应用 (2)使用C和C++语言编写,并使用多种编译器进行测试,保证了源代码的可移植性。 (3)支持多种操作系统。 (4)为多种编程语言提供了API,这些编程语言包括C、C+ + 、Java、Perl、PHP 、 Python等。 (5)优化的SQL 查询算法,可有效地提高查询速度。 (6)既能够作为一个单独的应用程序用在客户端/服务器网络环境中,也能够作为一个 库嵌入其他的软件中提供多语言支持,常见的编码如中文GB2312 、BIG5 、日文Shift_JIS 等 都可用作数据库的表名和列名。 (7)提供TCP/IP 、ODBC 和JDBC 等多种数据库连接途径。 (8)提供可用于管理、检查、优化数据库操作的管理工具。 (9)能够处理拥有上千万条记录的大型数据库。 3.MySQL发展 早期的MySQL 仅仅是一个小型的纯关系数据库管理系统,只支持标准SQL 的基本功 能,不支持多用户大量的并发访问,甚至也不具备触发器这类基础的数据库对象,但因其免 费开放源代码的优势,且它提供的功能对于绝大多数个人用户乃至中小型企业来说已经绰 绰有余,这使得MySQL 作为一款小型轻量级数据库在互联网上大受欢迎。 2008 年1月,MySQLAB 公司被Sun公司收购,而仅仅过了1年(2009 年),Sun公司 又被Oracle(甲骨文)公司收购,历经多个公司如滚雪球般的兼并和重组,投入在MySQL 升 级开发上的资源越来越多,MySQL 自身的功能也随之变得越来越强大。 从MySQL5.数据库开始运行于.NETFramewor安装和配置过程 6起, k4 以上平台, 与之前版本相比发生了很大变化。MySQL5.数据架构支持动态应 6新增在线DDL 更改、 用程序功能,同时复制全局事务标识以支持自我修复式集群,复制无崩溃从机以提高可用 性,复制多线程从机以提高性能。MySQL5.6版本基础上增加了新的优化器、 7在5.原生 JSON 支持、多源复制以及GIS 空间扩展等功能。2017 年,Oracle公司发布了MySQL 的最 新版本MySQL8.从5.0, 0的问世可 0, 7一跃而成8.可见这个版本的更新之大。MySQL8. 谓MySQL 发展史上的一个里程碑。 4.MySQL版本 MySQL 有多个不同用途的版本,其主要区别如下。 (1)MySQLCommunityServer(社区版), 开源免费,但不提供官方技术支持。 (2)MySQLEnterpriseEdition(企业版), 需付费,可以试用30 天。 (3)MySQLCluster(集群版), 开源免费,可将几个MySQL 封装成一个Server。 (4)MySQLClusterCGE(高级集群版), 需付费。 其中,MySQLCommunityServer是最常用的MySQL 版本之一,作为高校教材,本书 以这个版本为例来介绍MySQL 的基础知识和各项新技术。 5.MySQL服务器与端口号 (1)MySQL 服务器。MySQL 服务器是一台安装有MySQL 服务的主机系统,该主机系 统还应该包括操作系统、CPU 、内存及硬盘等软硬件资源。特殊情况下,同一台MySQL 服务 器可以安装多个MySQL 服务,甚至可以同时运行多个MySQL 服务实例,各个MySQL 服务 实例占用不同的端口号,为不同的MySQL 客户端提供服务。简而言之,同一台MySQL 服务 第 3 章 MySQL 的安装和配置 31 器同时运行多个MySQL 服务实例时,使用端口号区分这些MySQL 服务实例。 (2)端口号。服务器上运行的网络程序一般都是通过端口号来识别的,一台主机上端 口号可以有65536 个。典型的端口号的例子是某台主机同时运行多个QQ 进程,QQ 进程 之间使用不同的端口号进行辨识。也可以将MySQL 服务器想象成一部双卡双待的手机, 将端口号想象成SIM 卡槽,每个SIM 卡槽可以安装一张SIM 卡,将SIM 卡想象成MySQL 服务。手机启动后,手机同时运行了多个MySQL 服务实例,手机通过SIM 卡槽识别每个 MySQL 服务实例。 3.MySQL 在Widw 2 nos系统中的安装和配置 MySQL 支持多个平台,本节讲解如何在Windows平台下安装和配置MySQL 。 3.2.1 MySQL 的下载 用户可以登录MySQL 的官方网站(www.mysqlcom)下载最新版本的MySQL 数据 库。按照用户群分类,MySQL 数据库目前可以分为社区(.) 版和企业版,它们最重要的区别在 于:社区版是免费下载的,但是官方不提供任何技术支持;企业版是收费的,它提供更多功 能和更完备的技术支持,适合对数据库的功能和可靠性要求较高的企业用户。 本书选择的是免费的社区版进行讲解。首先进入MySQL 的官网,单击DOWNLOADS 导航栏,单击“MySQLCommunity(GPL)Downloads”链接,进入“MySQLCommunityDownloads”页面,如图3-1所示,选择MySQLCommunityServer选项即可进入MySQL 数 据库的下载页面。 图3- 1 MySQL社区版下载页面 2  MySQL 8.0 数据库原理与应用 进入MySQL数据库的下载页面后,首先在SelectOperatingSystem下拉菜单中选择 MicrosoftWindows平台,然后进入Windows平台下MySQL数据库产品页面,如图3-2 所示。 图3- 2 Windows平台下MySQL数据库产品页面 Windows平台下的MySQL文件有两个版本:MSI和ZIP 。 (1)MSI是安装版。在安装过程中,会将用户的各项选择自动写入配置文件中,适合初 学者使用,本书选择这个版本。 (2)ZIP是压缩版。需要用户自己打开配置文件写入配置信息,适合高级用户。 选择MSI版本,进入MSI下载页面,选择下载mysq-ntle-ommuiy8.28.mi。 lisarcnt-0.0.s 3.2.2 MySQL 的安装 ( 找到下载的安装程序后,具体安装步骤如下。 1)双击安装程序mysq-ntle-ommuiy-0.0.i, lisarcnt8.28.ms弹出安装类型选择界面, 如图3-3所示。选择Custom,然后单击Next按钮。 (2)在选择安装版本界面,展开第一个结点MySQLServers,找到并单击MySQL Sevr8.28.之后向右的箭头会变成绿色,单击该绿色的箭头,将选中的产品添加到 re0.X64, 第 3 章 MySQL 的安装和配置 33 图3- 3 安装类型选择界面 右侧的待安装列表框中,如图3-4所示。然后单击Next按钮进入安装列表界面。 图3- 4 选择安装版本界面 4  MySQL 8.0 数据库原理与应用 (3)单击安装列表界面(见图3-5)的Execute按钮后,要安装的产品右边会显示安装进 度百分比。安装完成之后在前面会出现一个绿色的√,如图3-6所示,表示MySQLServer 8.28 安装成功。 0. 图3- 5 准备安装界面 图3- 6 安装成功界面 第 3 章 MySQL 的安装和配置 35 3.2.3 MySQL 的配置 安装完成后,还需要配置MySQL的各项参数才能正常使用,具体配置步骤如下。 (1)单击图3-6中的Next按钮,出现准备配置的界面,如图3-7所示。 图3- 7 准备配置界面 (2)再次单击Next按钮,直接进入参数配置页面中的TypeandNetworking界面,如 图3-8所示。在服务器配置类型(ConfigType)中选择DevelopmentComputer,不同的选择 将决定系统为MySQL服务器实例分配资源的大小,DevelopmentComputer占用的内存是 最少的,连接方式保持默认的TCP/IP,端口号保持默认的3306即可,单击Next按钮。 在真实环境中,数据库服务器进程和客户端进程可能运行在不同的主机中,它们之间必 须通过网络进行通信。MySQL采用TCP作为服务器和客户端之间的网络通信协议。在 网络环境下,每台计算机都有一个唯一的IP地址,如果某个进程需要采用TCP协议进行网 络通信,就可以向操作系统申请一个端口号。端口号是一个整数值,它的取值范围是0~ 65535 。这样,网络中的其他进程就以通过IP地址+端口号的方式与这个进程建立连接,这 样进程之间就可以通过网络进行通信了。 MySQL服务器在启动时会默认申请端口号3306,之后就在这个端口号上等待客户端 进程进行连接,也就是说MySQL服务器会默认监听3306端口。 (3)设置MySQL数据库的root账户密码,如图3-9所示。 (4)在配置Windows服务时,需要进行以下几步操作:勾选ConfigureMySQLServer asaWindowsService选项,将MySQL服务器配置为Windows服务;选中Standard SystemAcount单选按钮,该选项是标准系统账户,推荐使用该账户;在WindowsServer 6  MySQL 8.0 数据库原理与应用 图3- 8 类型及网络参数配置界面 图3- 9 设置rot账户密码界面 第 3 章 MySQL 的安装和配置 37 Name 中输入MySQL,MySQL 是要用于此MySQL 服务器实例的Windows服务名称,每 个实例都需要一个唯一的名称,如图3-10 所示。之后单击Next按钮。 图3-10 设置Windows服务界面 (5)在之后出现的界面中单击Execute按钮。等到所有的配置完成之后,出现如图3-11 所示的界面,单击Finish按钮,跳到配置成功界面,之后单击界面中的Next按钮,在出现的 界面中单击Finish按钮即可完成配置,如图3-12 所示。 图3-11 配置成功界面 8  MySQL 8.0 数据库原理与应用 图3-12 安装配置完成界面 3.MySQL 的管理 3 MySQL 分为服务器和客户端,只有开启服务器端的服务,才能通过客户端连接到服务 器。本节讲述如何开启和关闭MySQL 服务、如何登录数据库以及如何设置密码等相关 操作。 3.3.1 启动与关闭MySQL 服务 不同的平台下启动与关闭MySQL 服务的操作方式是不一样的,下面针对Windows平 台,介绍MySQL 服务启动和关闭的过程。 MySQL 服务不仅可以通过Windows服务管理器启动和关闭,还可以通过命令行来启 动和关闭。 1. 通过Wids服务管理器管理MySQL服务(1)打开服务(n) 列(o) 表(w) 窗口。右击“计算机”图标,然后选择“管理”选项,在弹出的窗口中双 击“服务和应用程序”选项,双击“服务”选项,打开Windows服务管理器,如图3-13 所示。 在图3-13 中可以看到名称为MySQL80 的服务,双击此服务,弹出“MySQL80 的属性 (本地计算机)”对话框,如图3-14 所示。在此对话框中可以对MySQL 服务进行启动和 关闭 ( 。 2)也可以在命令行提示符中输入services.msc命令,打开Windows服务管理器。 2. 通过命令行管理MySQL服务 (1)单击“开始”菜单,在最下边的“搜索程序和文件”搜索框中输入cmd 命令,回车即可 第 3 章 MySQL 的安装和配置 39 图3-13 Windows服务管理器 图3-14 “MySQL80 属性(本地计算机)”对话框 进入DOS 窗口。 (2)在DOS 窗口中输入命令netstartMySQL80 即可启动MySQL 服务,如图3-15 所示。 (3)通过命令不仅可以启动MySQL 服务,还可以停止MySQL 服务,命令为netstopMySQL80 。执行完该命令后,如图3-16 所示,停止MySQL 服务。 0  MySQL 8.0 数据库原理与应用 图3-15 启动MySQL服务 图3-16 停止MySQL服务 3.3.2 登录与退出MySQL 数据库 MySQL 服务启动后,就可以通过MySQL 客户端来登录数据库了。Windows平台下, 可以通过两种方式来登录数据库:MySQL8.t和DOS 命令。 0CommandLineClien 1. 通过MySQL8.ommadLnlnt登录和退出数据库 0CnieCi (1)安装MySQL 时,也安装了客户端, 就是MySQL8.t,在也(e) 0CommandLineClien0CommandLineClien “开始”菜单中可以找到MySQL8.t,单击后打开MySQL 客户端,如 图3-17 所示。 可以看到打开客户端命令行窗口后,会提示输入密码,输入正确的密码后回车即可登 第3 章 MySQL 的安装和配置  41 录,如图3-18所示。登录成功后,会在客户端窗口中显示MySQL版本的相关信息。 图3-17 MySQL客户端窗口 图3-18 登录成功窗口 (2)登录成功后,可以使用quit或者exit命令退出登录。在执行完quit或者exit命令 后,客户端窗口会显示信息。 2.通过DOS命令登录和退出数据库 (1)Windows用户还可以通过DOS窗口来执行相应的命令来登录数据库,在DOS窗 口下,输入如下命令: mysql -h 127.0.0.1 -u root -p 其中,mysql是登录数据库的命令;-h后面需要加上服务器的IP地址,由于MySQL服务器 42  MySQL 8.0 数据库原理与应用 是安装到本地计算机上的,所以IP地址为127.0.0.1;-u后面填写的连接数据库的用户名 root;-p后面是设置的root用户的密码,通常不在-p后直接输入密码,因为在一些系统中密 码会被看到,安全性难以保证。如果非要在一行命令中显式地输入密码,那么在-p和密码 之间不能有空格字符。 输入此命令后按下回车键,出现输入密码的提示,输入正确的密码后,即可登录成功,如 图3-19所示。 图3-19 DOS命令登录成功窗口 如果没有配置MySQL的环境变量,上述命令的执行结果会提示mysql不是内部或外 部命令。 这是因为没有把MySQL的安装路径加入系统path中。右击“计算机”图标,选择“属 性”→“高级系统设置”,之后可以看到系统属性,单击“高级”,选择“环境变量”,就可以进入 环境变量界面。在系统变量中找到path变量后单击“编辑”按钮,如图3-20所示。 图3-20 环境变量path 在弹出的编辑界面中将MySQL 的安装路径C:\Program Files\MySQL\MySQL Server8.0\bin添加进去,并以分号与之前的内容分开,然后单击“确定”按钮即可完成配置。 (2)修改密码。为了保护数据库的安全,有时需要为登录MySQL服务器的用户修改 密码,下面以设置root用户的密码为例,登录MySQL后,执行如下命令即可。 alter user 'root'@'localhost' identified by '123456'; 第 3 章 MySQL 的安装和配置 43 上述命令表示为localhost主机中的root用户设置密码,密码为123456 。当设置密码 后,退出MySQL,然后重新登录时,需要输入新设置的密码才能登录成功。 3.常用图形化管理工具 4 MySQL命令行客户端的优点在于不需要额外安装,在MySQL软件包中已经安装。然 而命令行这种操作方式不够直观,而且容易出错。为了更方便地操作MySQL,可以使用一 些图形化工具。本节将对MySQL常用的两种图形化工具进行讲解。 3.4.1 SQLyog SQLyog是Webyog公司推出的一个快速、简洁的图形化工具,用于管理MySQL数据 库。该软件提供了个人版、企业版等版本。 SQLyog软件的主界面如图3-21所示。 图3-21 SQLyog主界面 选择菜单栏中的“文件”→“新连接”命令,弹出如图3-22所示的对话框。 图3-22 连接数据库 输入正确的MySQL主机地址(MySQLHostAddres)、用户名、密码和端口,单击“连 接”按钮,即可连接数据库。连接成功后的界面如图3-23所示。 4  MySQL 8.0 数据库原理与应用 图3-23 连接成功SQLyog的界面 在图323中,左边是一个树状控件,t表示当前使用rot用户身份登录了 localhost地址的MySQL服务器。该服务器中有5个数据库,每个数据库都有特定用途。 -rot@localhos 3.4.2 Navicat Navicat是一套快速、可靠的图形化数据库管理工具,它的设计符合数据库管理员、开发 人员以及中小企业的需求,支持的数据库包括MySQL 、SQLServer、Oracle等。 下面以Navicat16版本为例介绍软件的界面。打开软件后,如图3-24所示,选择“文 件”菜单下的“新建连接”命令,在弹出的菜单中选择MySQL,打开“新建连接(MySQL)”对 话框,如图3-25所示。 图3-24 Navicat主界面 在图3-25中,输入连接名、主机、端口、用户名和密码后,单击“确定”按钮,即可连接数 据库。连接成功页面如图3-26所示。单击工具栏中的“新建查询”图标,可以执行SQL 查询。 第 3 章 MySQL 的安装和配置 45 图3-25 “新建连接(MySQL)”对话框 图3-26 连接成功页面 46  MySQL 8.0 数据库原理与应用 习题 一、选择题 1.MySQL 的默认端口号是( )。 A.3306 B.1433 C.3377 D.1521 2.MySQL 是一种() 数据库管理系统。 A. 层次型B. 关系C. 网络型D. 对象型 3. 下列选项中,( ) 是MySQL 默认提供的用户。 A.admin B.test C.root D.user 二、填空题 1. 在DOS 窗口中输入命令() 即可启动MySQL 服务。 2. 在DOS 窗口中输入命令() 即可停止MySQL 服务。 3. 可以使用() 或者() 命令退出登录。 第 4 章数据库和表的操作 学习目标: .掌握数据库的操作; .掌握数据表的操作; .掌握表中数据的操作。 在MySQL 数据库的学习中,数据库、数据表和数据的操作,是每个初学 者必须掌握的内容,同时也是学习后续课程的基础。为了让初学者能够快速 体验与掌握数据库的基本操作,本章将对这些基本操作进行详细讲解。 1 SQL 语言简介 4. SQL 的含义为结构化查询语言,即StructuredQueryLanguage,是在关 系数据库系统中被广泛采用的一种语言形式。SQL 语言能够针对数据库完 成定义、查询、操纵和控制功能,是关系数据库领域中的标准化查询语言。目 前,各大数据库厂商的数据库产品从很大程度上支持了SQL-92 标准,并在实 践过程中对SQL 标准作了一些修改和补充。因此,不同数据库产品的SQL 仍然存在少量的差别。 SQL 主要由数据定义语言、数据操纵语言、数据控制语言和数据查询语 言组成。 1. 数据定义语言 数据定义语言(DataDefinitionLanguage,DDL)用来执行数据库的任 务,对数据库及数据库中的各种对象进行创建、修改和删除操作。 (1)create:创建数据库或数据库对象。 (2)alter:修改数据库或数据库对象。 (3)drop:删除数据库或数据库对象。 2. 数据操纵语言 数据操纵语言(DataManipulationLanguage,DML)用于操纵数据库中 的数据,包括插入、修改和删除操作。 48  MySQL 8.0 数据库原理与应用 (1)insert:插入一行或多行数据到表或视图中。 (2)update:修改表或视图中的一行数据,也可以修改全部数据。 (3)delete:根据条件删除表或视图中的数据。 3.数据控制语言 数据控制语言(DataControlLanguage,DCL)用于安全管理,确定哪些用户可以查看或 修改数据库中的数据。 (1)grant:把语句许可或对象许可的权限授予其他用户或角色。 (2)revoke:与grant功能相反,撤销权限。 (3)commit:用于提交事务。 (4)rollback:用于回滚事务。 4.数据查询语言 数据查询语言(DataQueryLanguage,DQL)对数据库中的数据进行查询操作。 select:从表或视图中根据条件检索需要的数据。 4.2 数据库操作 MySQL安装好之后,首先需要创建数据库,这是使用MySQL各种功能的前提。 4.2.1 创建数据库 MySQL服务器中的数据库可以有多个,分别存储不同的数据。要想将数据存储到数 据库中,首先需要创建一个数据库。创建数据库就是在数据库系统中划分一块存储数据的 空间,基本语法格式如下。 create database [if not exists] db_name [[default] character set charset_name] [[default] collate collation_name] 在上述语法中,createdatabase表示创建数据库;在创建数据库时可以使用ifnotexists 表示指定的数据库不存在时执行创建操作,否则忽略此操作;db_name可以是字母、数字和 下画线组成的任意字符串,在MySQL中不区分大小写;如果指定了charactersetcharset_ name和collatecollation_name,那么采用指定的字符集charset_name和校验规则collation_ name。如果没有指定,则会采用默认值。 【例4-1】 创建一个名为jsjxy的数据库,具体SQL语句与执行结果如下。 mysql> create database jsjxy; Query OK, 1 row affected (0.05 sec) 这里需要注意的是,如果创建的数据库已经存在,则程序会报错。为了防止这种情况发 生,可以使用ifnotexists来判断创建的数据库是否已经存在,具体SQL语句与执行结果 如下。