MySQL 8从入门到精通(视频教学版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-15 02:16:04

点击下载

作者:王英英

出版社:清华大学出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

MySQL 8从入门到精通(视频教学版)

MySQL 8从入门到精通(视频教学版)试读:

前言

本书是面向MySQL数据库管理系统初学者的一本高质量的入门图书。目前国内MySQL技术需求旺盛,各大知名企业都高薪招聘技术能力强的MySQL数据库开发人员和管理人员。本书根据这样的需求,以MySQL 8版本为基础,针对初学者量身定做,内容注重实战,通过实例的操作与分析,引领读者快速学习和掌握MySQL开发和管理技术。本书内容

第1章主要介绍数据库的技术构成和什么是MySQL,包括数据库基本概念和MySQL工具。

第2章介绍MySQL 8的安装和配置,主要包括Windows平台下的安装和配置、Linux平台下的安装和配置、如何启动MySQL服务、如何更改MySQL的配置等。

第3章介绍MySQL数据库的基本操作,包括创建数据库、删除数据库和MySQL数据库存储引擎。

第4章介绍MySQL数据表的基本操作,主要包括创建数据表、查看数据表结构、修改数据表和删除数据表。

第5章介绍MySQL中的数据类型和运算符,主要包括MySQL数据类型介绍、如何选择数据类型和常见运算符介绍。

第6章介绍MySQL函数,包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数和其他函数。

第7章介绍如何查询数据表中的数据,主要包括基本查询语句、单表查询、使用聚合函数查询、连接查询、子查询、合并查询结果、为表和字段取别名以及使用正则表达式查询。

第8章介绍如何插入、更新与删除数据,包括插入数据、更新数据、删除数据。

第9章介绍MySQL中的索引,包括索引简介、如何创建各种类型的索引和如何删除索引。

第10章介绍MySQL中的存储过程和函数,包括存储过程和函数的创建、调用、查看、修改和删除。

第11章介绍MySQL视图,主要介绍视图的概念、创建视图、查看视图、修改视图、更新视图和删除视图。

第12章介绍MySQL触发器,包括创建触发器、查看触发器、触发器的使用和删除触发器。

第13章介绍MySQL用户管理,主要包括MySQL中的各种权限表、账户管理、权限管理和MySQL的访问控制机制。

第14章介绍MySQL数据库的备份和恢复,主要包括数据备份、数据恢复、数据库的迁移和数据表的导出和导入。

第15章介绍MySQL日志,主要包括日志简介、二进制日志、错误日志、通用查询日志和慢查询日志。

第16章介绍如何对MySQL进行性能优化,包括优化简介、优化查询、优化数据库结构和优化MySQL服务器。

第17章介绍MySQL Replication复制数据的操作方法和技巧。

第18章介绍MySQL Workbench设计MySQL数据库的方法和技巧。

第19章介绍MySQL Utilities管理MySQL数据库的方法和技巧。

第20章介绍MySQL Proxy操作MySQL数据库的方法和技巧。

第21章介绍PHP操作MySQL数据库的方法和技巧。

第22章介绍MySQL存储引擎的工作原理。

第23章介绍PHP操作MySQL数据库的方法和技巧。

第24章介绍PDO数据库抽象类库的使用方法和技巧。

第25章介绍开发网上商场的方法和实现过程。

第26章介绍论坛系统数据库的设计方法和实现过程。

第27章介绍新闻发布系统数据库的设计方法和实现过程。本书特色

内容全面:涵盖了所有MySQL的基础知识点,由浅入深地掌握MySQL数据库开发技术。

图文并茂:在介绍案例的过程中,每一个操作均有对应步骤和过程说明。这种图文结合的方式使读者在学习过程中能够直观、清晰地看到操作的过程以及效果,便于读者更快地理解和掌握。

易学易用:颠覆传统“看”书的观念,变成一本能“操作”的图书。

案例丰富:把知识点融汇于系统的案例实训当中,并且结合综合案例进行讲解和拓展,进而达到“知其然,并知其所以然”的效果。

提示说明:本书对读者在学习过程中可能会遇到的疑难问题以“提示”的形式进行说明,以免读者在学习的过程中走弯路。

超值资源:本书共有480个详细实例和16个综合案例源代码,能让读者在实战应用中掌握MySQL的每一项技能。下载包中赠送近20小时培训班形式的视频教学录像,使本书真正体现“自学无忧”,令其物超所值。课件、源码、教学视频下载

本书课件、源码、教学视频下载地址可以扫描上侧的二维码获得。

如果下载有问题,请电子邮件联系booksaga@163.com,邮件主题为“MySQL8从入门到精通”。

也可加入本书技术支持QQ群(790586917)获取。读者对象

本书是一本完整介绍MySQL数据库技术的教程,内容丰富、条理清晰、实用性强,适合以下读者学习使用:

● MySQL数据库初学者。

● 对数据库开发有兴趣,希望快速、全面掌握MySQL的人员。

● 对其他数据库有一定的了解,想转到MySQL平台上的开发者。

● 高等院校和培训学校相关专业的师生。鸣谢与技术支持

本书由王英英著,同时李小威、刘增产、王秀荣、王天护、张工厂、刘增杰、刘玉萍、胡同夫、皮素芹、王猛、王攀登、王婷婷、王朵朵、李小威、王维维、张芳、刘玉红等人也参与了写作工作。虽然倾注了众多人员的努力,但由于水平有限,书中难免有疏漏之处。如果遇到问题或有意见和建议,敬请与我们联系,我们将全力提供帮助。著者2019年5月第1章初识MySQL学习目标 | Objective

MySQL是一个开放源代码的数据库管理系统(DBMS),是由MySQL AB公司开发、发布并支持的。MySQL是一个跨平台的开源关系型数据库管理系统,广泛地应用在Internet上的中小型网站开发中。本章主要介绍数据库的基础知识。通过本章的学习,读者可以了解数据库的基本概念、数据库的构成和MySQL的基础知识。内容导航 | Navigation

● 了解什么是数据库

● 掌握什么是表、数据类型和主键

● 熟悉数据库的技术构成

● 熟悉什么是MySQL

● 掌握常见的MySQL工具

● 了解如何学习MySQL1.1 数据库基础

数据库由一批数据构成有序的集合,这些数据被存放在结构化的数据表里。数据表之间相互关联,反映了客观事物间的本质联系。数据库系统提供对数据的安全控制和完整性控制。本节将介绍数据库中的一些基本概念,包括数据库的定义、数据表的定义和数据类型等。1.1.1 什么是数据库

数据库的概念诞生于60年前,随着信息技术和市场的快速发展,数据库技术层出不穷,随着应用的拓展和深入,数据库的数量和规模越来越大,其诞生和发展给计算机信息管理带来了一场巨大的革命。

数据库的发展大致划分为如下几个阶段:人工管理阶段、文件系统阶段、数据库系统阶段、高级数据库阶段。其种类大概有3种:层次式数据库、网络式数据库和关系式数据库。不同种类的数据库按不同的数据结构来联系和组织。

对于数据库的概念,没有一个完全固定的定义,随着数据库历史的发展,定义的内容也有很大的差异,其中一种比较普遍的观点认为,数据库(DataBase,DB)是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。它是一个按数据结构来存储和管理数据的计算机软件系统。数据库包含两层含义:保管数据的“仓库”,以及数据管理的方法和技术。

数据库的特点是:实现数据共享,减少数据冗余;采用特定的数据类型;具有较高的数据独立性;具有统一的数据控制功能。1.1.2 表

在关系数据库中,数据库表是一系列二维数组的集合,用来存储数据和操作数据的逻辑结构。它由纵向的列和横向的行组成。行被称为记录,是组织数据的单位;列被称为字段,每一列表示记录的一个属性,有相应的描述信息,如数据类型、数据宽度等。

例如,一个有关作者信息的名为authors的表中,每列包含所有作者某个特定类型的信息,比如“姓名”,而每行则包含了某个特定作者的所有信息(编号、姓名、性别、专业),如图1.1所示。图1.1 authors表结构与记录1.1.3 数据类型

数据类型决定了数据在计算机中的存储格式,代表不同的信息类型。常用的数据类型有整数数据类型、浮点数数据类型、精确小数类型、二进制数据类型、日期/时间数据类型、字符串数据类型。

表中的每一个字段就是某种指定数据类型,比如图1.1中“编号”字段为整数数据,“性别”字段为字符型数据。1.1.4 主键

主键(Primary Key)又称主码,用于唯一地标识表中的每一条记录。可以定义表中的一列或多列为主键,主键列上既不能有两行相同的值,也不能为空值。假如,定义authors表,该表给每一个作者分配一个“作者编号”,该编号作为数据表的主键,如果出现相同的值,将提示错误,系统不能确定查询的究竟是哪一条记录;如果把作者的“姓名”作为主键,则不能出现重复的名字,这与现实中的情况不符,因此“姓名”字段不适合作为主键。1.2 数据库技术构成

数据库系统由硬件部分和软件部分共同构成。硬件主要用于存储数据库中的数据,包括计算机、存储设备等。软件部分主要包括DBMS、支持DBMS运行的操作系统,以及支持多种语言进行应用开发的访问技术等。本节将介绍数据库的技术构成。1.2.1 数据库系统

数据库系统有3个主要的组成部分。

● 数据库:用于存储数据的地方。

● 数据库管理系统:用于管理数据库的软件。

● 数据库应用程序:为了提高数据库系统的处理能力所使用的管理数据库的软件补充。

数据库系统(Database System)提供了一个存储空间,用以存储各种数据,可以将数据库视为一个存储数据的容器。一个数据库可能包含许多文件,一个数据库系统中通常包含许多数据库。

数据库管理系统(DataBase Management System,DBMS)是用户创建、管理和维护数据库时所使用的软件,位于用户与操作系统之间,对数据库进行统一管理。DBMS能定义数据存储结构,提供数据的操作机制,维护数据库的安全性、完整性和可靠性。

数据库应用程序(DataBase Application)虽然已经有了DBMS,但是在很多情况下,DBMS无法满足对数据管理的要求。数据库应用程序的使用可以满足对数据管理的更高要求,还可以使数据管理过程更加直观和友好。数据库应用程序负责与DBMS进行通信,访问和管理DBMS中存储的数据,允许用户插入、修改、删除DB中的数据。

数据库系统如图1.2所示。图1.2 数据库系统1.2.2 SQL语言

对数据库进行查询和修改操作的语言叫作SQL。SQL的含义是结构化查询语言(Structured Query Language)。SQL有许多不同的类型,有3个主要的标准:ANSI(美国国家标准机构)SQL;对ANSI SQL修改后在1992年采纳的标准,称为SQL-92或SQL2;最近的SQL-99标准,从SQL2扩充而来,并增加了对象关系特征和许多其他新功能。各大数据库厂商提供不同版本的SQL,这些版本的SQL不但能包括原始的ANSI标准,而且在很大程度上支持SQL-92标准。

SQL语言包含以下4部分。(1)数据定义语言(DDL):DROP、CREATE、ALTER等语句。(2)数据操作语言(DML):INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。(3)数据查询语言(DQL):SELECT语句。(4)数据控制语言(DCL):GRANT、REVOKE、COMMIT、ROLLBACK等语句。

下面是一条SQL语句的例子,该语句声明创建一个名叫students的表:

该表包含2个字段,分别为student_id、name,其中student_id定义为表的主键。

现在只是定义了一张表格,并没有任何数据,接下来这条SQL声明语句将在students表中插入一条数据记录:  INSERT INTO students (student_id, name)  VALUES (41048101, 'Lucy Green',);

执行完该SQL语句之后,students表中就会增加一行新记录,该记录中字段student_id的值为41048101,name字段的值为Lucy Green。

再使用SELECT查询语句获取刚才插入的数据,具体如下:

上面简单列举了常用的数据库操作语句,在这里给读者一个直观的印象,读者可能还不能理解,接下来会在学习MySQL的过程中详细介绍这些知识。1.2.3 数据库访问接口

不同的程序设计语言会有各自不同的数据库访问接口,程序语言通过这些接口执行SQL语句,进行数据库管理。主要的数据库访问接口有ODBC、JDBC、ADO.NET和PDO。1.ODBC

ODBC(Open Database Connectivity,开放数据库连接)技术为访问不同的SQL数据库提供了一个共同的接口。ODBC使用SQL作为访问数据的标准。这一接口提供了最大限度的互操作性:一个应用程序可以通过共同的一组代码访问不同的SQL数据库管理系统(DBMS)。

一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是Access、MySQL还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。2.JDBC

JDBC(Java Data Base Connectivity,Java数据库连接)用于Java应用程序连接数据库的标准方法,是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,由一组用Java语言编写的类和接口组成。3.ADO.NET

ADO.NET是微软在.NET框架下开发设计的一组用于和数据源进行交互的面向对象类库。ADO.NET提供了对关系数据、XML和应用程序数据的访问,允许和不同类型的数据源以及数据库进行交互。4.PDO

PDO(PHP Data Object)为PHP访问数据库定义了一个轻量级的、一致性的接口,提供了一个数据访问抽象层。这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据。

针对不同的程序语言,在MySQL提供了不同数据库访问连接驱动,读者可以在下载页面(http://dev.MySQL.com/downloads/)下载相关驱动。1.3 什么是MySQL

MySQL是一个小型关系数据库管理系统。与其他大型数据库管理系统(例如Oracle、DB2、SQL Server等)相比,MySQL规模小、功能有限,但是它体积小、速度快、成本低,并且提供的功能对稍微复杂的应用来说已经够用,这些特性使得MySQL成为世界上最受欢迎的开放源代码数据库。本节将介绍MySQL的特点。1.3.1 客户端/服务器软件

主从式架构(Client-Server Model)或客户端/服务器(Client/Server)结构(简称C/S结构),是一种网络架构,通常在该网络架构下的软件可分为客户端(Client)和服务器(Server)。

服务器是整个应用系统资源的存储与管理中心,多个客户端则各自处理相应的功能,共同实现完整的应用。在客户端/服务器结构中,客户端用户的请求被传送到数据库服务器,数据库服务器进行处理后,将结果返回给用户,从而减少了网络数据传输量。

用户使用应用程序时,首先启动客户端通过有关命令告知服务器进行连接以完成各种操作,而服务器则按照此请示提供相应的服务。每一个客户端软件的实例都可以向一个服务器或应用程序服务器发出请求。

这种系统的特点就是,客户端和服务器程序不在同一台计算机上运行,这些客户端和服务器程序通常归属不同的计算机。

主从式架构通过不同的途径应用于很多不同类型的应用程序,比如现在人们最熟悉的在因特网上使用的网页。例如,当顾客想要在当当网站上买书的时候,电脑和网页浏览器就被当作一个客户端,同时组成当当网的电脑、数据库和应用程序就被当作服务器。当顾客的网页浏览器向当当网请求搜寻数据库相关的图书时,当当网服务器从当当网的数据库中找出所有该类型的图书信息,结合成一个网页,再发送回顾客的浏览器。服务器一般使用高性能的计算机,并配合使用不同类型的数据库,比如Oracle、Sybase或者是MySQL等;客户端需要安装专门的软件,比如专门开发的客户端工具浏览器等。1.3.2 MySQL版本

针对不同用户,MySQL分为两个不同的版本:

● MySQL Community Server(社区版服务器):该版本完全免费,但是官方不提供技术支持。

● MySQL Enterprise Server(企业版服务器):能够以很高的性价比为企业提供数据仓库应用,支持ACID事物处理,提供完整的提交、回滚、崩溃恢复和行级锁定功能。但是该版本需付费使用,官方提供电话技术支持。提示MySQL Cluster主要用于架设集群服务器,需要在社区版或企业版基础上使用。

MySQL的命名机制由3个数字和1个后缀组成,例如:MySQL-8.0.13版本。(1)第1个数字(8)是主版本号,描述了文件格式,所有版本8的发行版都有相同的文件格式。(2)第2个数字(0)是发行级别,主版本号和发行级别组合在一起便构成了发行序列号。(3)第3个数字(13)是在此发行系列的版本号,随每次新分发版本递增。通常选择已经发行的最新版本。

在MySQL开发过程中,同时存在多个发布系列,每个发布处在成熟度的不同阶段。(1)MySQL 8.0是最新开发的稳定(GA)发布系列,是将执行新功能的系列,目前已经可以正常使用。(2)MySQL 8.0是比较稳定(GA)发布系列。只针对漏洞修复重新发布,没有增加会影响稳定性的新功能。(3)MySQL 5.7是前一稳定(产品质量)发布系列。只针对严重漏洞修复和安全修复重新发布,没有增加会影响该系列的重要功能。提示对于MySQL 4.1、4.0和3.23等低于5.0的老版本,官方将不再提供支持,而所有发布的MySQL(Current Generally Available Release)版本已经经过严格标准的测试,可以保证其安全可靠地使用。针对不同的操作系统,读者可以在MySQL官方下载页面(http://dev.mysql.com/downloads/)下载到相应的安装文件。1.3.3 MySQL的优势

MySQL的主要优势如下:(1)速度:运行速度快。(2)价格:MySQL对多数个人来说是免费的。(3)容易使用:与其他大型数据库的设置和管理相比,其复杂程度较低,易于学习。(4)可移植性:能够工作在众多不同的系统平台上,例如Windows、Linux、UNIX、Mac OS等。(5)丰富的接口:提供了用于C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等语言的API。(6)支持查询语言:MySQL可以利用标准SQL语法和支持ODBC的应用程序。(7)安全性和连接性:十分灵活和安全的权限和密码系统,允许基于主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码安全。由于MySQL是网络化的,因此可以在因特网上的任何地方访问,提高数据共享的效率。1.4 MySQL工具

MySQL数据库管理系统提供了许多命令行工具,这些工具可以用来管理MySQL服务器、对数据库进行访问控制、管理MySQL用户以及数据库备份和恢复工具等。MySQL提供图形化的管理工具,对数据库的操作更加简单。本节将为读者介绍这些工具的作用。1.4.1 MySQL命令行实用程序

MySQL服务器端实用工具程序如下:(1)mysqld:SQL后台程序(MySQL服务器进程)。必须在该程序运行之后,客户端才能通过连接服务器来访问数据库。(2)mysqld_safe:服务器启动脚本。在UNIX和NetWare中推荐使用mysqld_safe来启动mysqld服务器。mysqld_safe增加了一些安全特性,例如当出现错误时重启服务器并向错误日志文件写入运行时间信息。(3)mysql.server:服务器启动脚本。该脚本用于使用包含为特定级别的、运行启动服务的脚本的、运行目录的系统。它调用mysqld_safe来启动MySQL服务器。(4)mysql_multi:服务器启动脚本,可以启动或停止系统上安装的多个服务器。(5)myisamchk:用来描述、检查、优化和维护MyISAM表的实用工具。(6)mysqlbug:MySQL缺陷报告脚本。它可以用来向MySQL邮件系统发送缺陷报告。(7)mysql_install_db:该脚本用默认权限创建MySQL授权表。通常只是在系统上首次安装MySQL时执行一次。

MySQL客户端实用工具程序如下:(1)myisampack:压缩MyISAM表,以产生更小的只读表的一个工具。(2)mysql:交互式输入SQL语句或从文件以批处理模式执行它们的命令行工具。(3)mysqlaccess:检查访问主机名、用户名和数据库组合的权限的脚本。(4)mysqladmin:执行管理操作的客户程序,例如创建或删除数据库、重载授权表、将表刷新到硬盘上以及重新打开日志文件。mysqladmin还可以用来检索版本、进程,以及服务器的状态信息。(5)mysqlbinlog:从二进制日志读取语句的工具。在二进制日志文件中包含执行过的语句,可用来帮助系统从崩溃中恢复。(6)mysqlcheck:检查、修复、分析以及优化表的表维护客户程序。(7)mysqldump:将MySQL数据库转储到一个文件(例如SQL语句或tab分隔符文本文件)的客户程序。(8)mysqlhotcopy:当服务器在运行时,快速备份MyISAM或ISAM表的工具。(9)mysqlimport:使用LOAD DATA INFILE将文本文件导入相关表的客户程序。(10)mysqlshow:显示数据库、表、列以及索引相关信息的客户程序。(11)perror:显示系统或MySQL错误代码含义的工具。1.4.2 MySQL Workbench

MySQL Workbench是下一代可视化数据库设计软件,为数据库管理员和开发人员提供了一整套可视化数据库操作环境,主要功能有:

● 数据库设计和模型建立。

● SQL开发(取代MySQL Query Browser)。

● 数据库管理(取代MySQL Administrator)。

MySQL Workbench有两个版本:(1)MySQL Workbench Community Edition(也叫MySQL Workbench OSS,社区版),是在GPL证书下发布的开源社区版本。(2)MySQL Workbench Standard Edition(也叫MySQL Workbench SE,商业版),是按年收费的商业版本。提示一些出版时间较早的MySQL教程中会提到图形化的工具MySQL Query Browser和MySQL Administrator。随着MySQL的发展,Oracle公司使用更高效、便捷的Workbench替换掉了这两个工具,目前官方已经不再提供MySQL Query Browser和MySQL Administrator的技术支持和更新,但是仍然可以在使用旧版本MySQL时使用它们。1.5 MySQL 8.0的新特性简述

和MySQL 5.7相比,MySQL 8.0的新特性主要包括以下几个方面。1.数据字典

MySQL 8.0包含一个事务数据字典,用于存储有关数据库对象的信息。在MySQL 8.0之前的版本中,字典数据存储在元数据文件和非事务表中。2.原子数据定义语句

MySQL 8.0支持原子数据定义语言(DDL)语句。此功能称为原子DDL。原子DDL语句将与DDL操作关联的数据字典更新,存储引擎操作和二进制日志写入组合到单个原子事务中。即使服务器在操作期间暂停,也会提交事务,并将适用的更改保留到数据字典、存储引擎和二进制日志,或者回滚事务。通过在MySQL 8.0中引入MySQL数据字典,可以实现原子DDL。在早期的MySQL版本中,元数据存储在元数据文件、非事务性表和存储引擎特定的字典中,需要中间提交。MySQL数据字典提供的集中式事务元数据存储消除了这一障碍,使得将DDL语句操作重组为原子事务成为可能。3.安全和账户管理

MySQL 8.0通过以下功能增强数据库的安全性,并在账户管理中实现更高的DBA灵活性。

MySQL数据库的授权表统一为InnoDB(事务性)表。每个语句都是事务性的,并且对所有创建的用户都是成功或者回滚,发生任何错误都无效。如果成功,就将语句写入二进制日志;如果失败则不写入,发生回滚并且不进行任何更改。

MySQL 8.0开始支持角色,角色可以看成是一些权限的集合,为用户赋予统一的角色,权限的修改直接通过角色来进行,无须为每个用户单独授权。管理员可以创建和删除角色。

MySQL 8.0开始维护有关密码历史的信息,从而限制了以前密码的重用。管理员可以在全局以及每个账户的基础上建立密码重用策略,从而在密码更改时限制使用以前使用过的密码。

MySQL 8.0允许账户具有双密码,从而在多服务器系统中无缝地执行分阶段密码更改,无须停机。4.资源管理

MySQL现在支持资源组的创建和管理,并允许将服务器内运行的线程分配给特定的资源组。资源组属性可以控制其资源,以启用或限制资源组中线程的资源消耗。数据库管理员可以根据不同的工作负载修改这些属性。5.InnoDB增强功能

MySQL 8.0增强了InnoDB的功能,主要表现如下:(1)MySQL 8.0将自增主键的计数器持久化到重做日志中。每次计数器发生改变,都会将其写入重做日志中。如果数据库重启,InnoDB会根据重做日志中的信息来初始化计数器的内存值。为了尽量减小对系统性能的影响,计数器写入重做日志时,并不会马上刷新数据库系统。(2)如果索引损坏,InnoDB将索引损坏标志写入重做日志,从而使得损坏标志安全。InnoDB还将内存中损坏标志数据写入每个检查点上的引擎专用系统表。在恢复期间,InnoDB从两个位置读取损坏标志并在将内存表和索引对象标记为损坏之前合并结果。(3)新的动态变量innodb_deadlock_detect可用于禁用死锁检测。在高并发系统上,当许多线程等待同一个锁时,死锁检测会导致速度减慢,此时禁用死锁检测可能更有效。6.字符集支持

默认字符集已经更改latin1为utf8mb4。该utf8mb4字符集有几个新的排序规则,其中包括utf8mb4_ja_0900_as_cs。7.增强JSON功能

MySQL增强JSON功能主要表现在以下几个方面:(1)添加了->>运算符,相当于调用JSON_UNQUOTE()的结果。(2)添加了两个JSON聚合函数JSON_ARRAYAGG()和JSON_OBJECTAGG()。JSON_ARRAYAGG()将列或表达式作为其参数,并将结果聚合为单个JSON数组。JSON_OBJECTAGG()取两个列或表达式,将其解释为键和值,并将结果作为单个JSON对象返回。(3)添加了JSON实用程序功能JSON_PRETTY(),JSON以易于阅读的格式输出现有值;每个JSON对象成员或数组值都打印在一个单独的行上,子对象或数组相对于其父对象是2个空格。(4)添加的JSON_MERGE_PATCH()可以合并符合RFC 7396标准的JSON。在两个JSON对象上使用时,可以将它们合并为单个JSON对象。8.数据类型的支持

MySQL 8.0支持将表达式用作数据类型的默认值,包括BLOB、TEXT、GEOMETRY和JSON数据类型,在以前的版本中是根本不会被分配默认值的。9.查询的优化

MySQL 8.0在查询方面的优化表现如下:(1)MySQL 8.0开始支持不可见索引。优化器根本不使用不可见索引,但会以其他方式正常维护。默认情况下,索引是可见的。通过不可见索引,数据库管理员可以检测索引对查询性能的影响,而不会进行破坏性的更改。(2)MySQL8.0开始支持降序索引。DESC在索引定义中不再被忽略,而且会降序存储索引字段。10.公用表表达式

MySQL现在支持非递归和递归的公用表表达式。公用表表达式允许使用命名的临时结果集,通过允许WITH语句之前的子句SELECT和某些其他语句来实现。11.窗口函数

在MySQL 8.0版本中,新增了一个窗口函数,用它可以实现很多新的查询方式。窗口函数类似于SUM()、COUNT()那样的集合函数,但它并不会将多行查询结果合并为一行,而是将结果放回多行当中。12.统计直方图

MySQL 8.0实现了统计直方图。利用直方图,用户可以对一张表的一列做数据分布的统计,特别是针对没有索引的字段。这可以帮助查询优化器找到更优的执行计划。13.备份锁

新类型的备份锁在联机备份期间允许DML,同时防止可能导致快照不一致的操作。新的备份锁由LOCK INSTANCE FOR BACKUP和UNLOCK INSTANCE语法支持。管理员拥有BACKUP_ADMIN权限才能使用这些语句。

如果读者想进一步深入学习MySQL 8.0的新功能,可以参照官方的相关资料:https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html?tdsourcetag=s_pctim_aiomsg。1.6 如何学习MySQL

在学习MySQL数据库之前,很多读者都会问如何才能学习好MySQL 8.0的相关技能呢?下面就来讲述学习MySQL的方法。1.培养兴趣

兴趣是最好的老师,不论学习什么知识,兴趣都可以极大地提高学习效率。当然学习MySQL也不例外。2.夯实基础

计算机领域的技术非常强调基础,刚开始学习可能还认识不到这一点,随着技术应用的深入,只有有着扎实的基础功底,才能在技术的道路上走得更快、更远。对于MySQL的学习来说,SQL语句是其中最为基础的部分,很多操作都是通过SQL语句来实现的。所以在学习的过程中,读者要多编写SQL语句,对于同一个功能,使用不同的实现语句来完成,从而深刻理解其不同之处。3.及时学习新知识

正确、有效地利用搜索引擎,可以搜索到很多关于MySQL的相关知识。同时,参考别人解决问题的思路,也可以吸取别人的经验,及时获取最新的技术资料。4.多实践操作

数据库系统具有极强的操作性,需要多动手上机操作,在实际操作的过程中才能发现问题并思考解决问题的方法和思路,才能提高实战的操作能力。第2章MySQL的安装与配置学习目标 | Objective

MySQL支持多种平台,不同平台下的安装与配置过程也不相同。在Windows平台下可以使用二进制的安装软件包或免安装版的软件包进行安装,二进制的安装包提供了图形化的安装向导过程,而免安装版直接解压缩即可使用。Linux平台下使用命令行安装MySQL,但由于Linux是开源操作系统,有众多的分发版本,因此不同的Linux平台需要下载相应的MySQL安装包。本章将主要讲述Windows和Linux两个平台下MySQL 8.0.13(本书也称MySQL 8.0或者MySQL 8)的安装和配置过程。内容导航 | Navigation

● 掌握如何在Windows平台下安装和配置MySQL 8.0

● 掌握启动服务并登录MySQL数据库

● 掌握MySQL的两种配置方法

● 熟悉MySQL常用图形管理工具

● 掌握常见的MySQL工具

● 掌握如何在Linux平台下安装和配置MySQL2.1 Windows平台下安装与配置MySQL 8.0

Windows平台下安装MySQL,可以使用图行化的安装包,图形化的安装包提供了详细的安装向导,通过向导,读者可以一步一步地完成对MySQL的安装。本节将介绍使用图形化安装包安装MySQL 8.0的步骤。2.1.1 安装MySQL 8.0

要想在Windows中运行MySQL,需要32位或64位Windows操作系统,例如Windows 7、Windows 8、Windows 10、Windows Server 2012等。Windows可以将MySQL服务器作为服务来运行。通常,在安装时需要具有系统的管理员权限。

Windows平台下提供两种安装方式:MySQL二进制分发版(.msi安装文件)和免安装版(.zip压缩文件)。一般来讲,应当使用二进制分发版,因为该版本比其他的分发版使用起来要简单,不再需要其他工具来启动就可以运行MySQL。1.下载MySQL安装文件

下载MySQL安装文件的具体操作步骤如下:

步骤01 打开IE浏览器,在地址栏中输入网址“https://dev.mysql.com/downloads/installer/”,单击【转到】按钮,打开MySQL Community Server 8.0.13下载页面,选择Microsoft Windows平台,然后根据读者的平台选择32位或者64位安装包,在这里选择32位,单击右侧【Download】按钮开始下载,如图2.1所示。

步骤02 在弹出的页面中提示开始下载,这里单击【Login】按钮,如图2.2所示。图2.1 MySQL下载页面图2.2 开始下载页面提示这里32位的安装程序有两个版本,分别为mysql-installer-web-community和mysql-installer-communityl,其中mysql-installer-web-community为在线安装版本,mysql-installer-communityl为离线安装版本。

步骤03 弹出用户登录页面,输入用户名和密码后,单击【登录】按钮,如图2.3所示。

步骤04 弹出开始下载页面,单击【Download Now】按钮,即可开始下载,如图2.4所示。图2.3 用户登录页面图2.4 开始下载页面提示如果用户没有用户名和密码,单击【创建账户】链接进行注册即可。2.安装MySQL 8.0

MySQL下载完成后,找到下载文件,双击进行安装,具体操作步骤如下。

步骤01 双击下载的mysql-installer-community-8.0.13.0.msi文件,如图2.5所示。图2.5 MySQL安装文件名称

步骤02 打开【License Agreement】(用户许可证协议)窗口,选中【I accept the license terms】(我接受许可协议)复选框,单击【Next】(下一步)按钮,如图2.6所示。图2.6 用户许可证协议窗口

步骤03 打开【Choosing a Setup Type】(安装类型选择)窗口,在其中列出了5种安装类型,分别是Developer Default(默认安装类型)、Server only(仅作为服务器)、Client only(仅作为客户端)、Full(完全安装)和Custom(自定义安装类型)。这里选择【Custom】(自定义安装类型)单选按钮,单击【Next】(下一步)按钮,如图2.7所示。图2.7 安装类型窗口

步骤04 打开【Select Products and Features 】(产品定制选择)窗口,选择【MySQL Server 8.0.13-x86】后,单击【添加】按钮,即可选择安装MySQL服务器。采用同样的方法,添加【Samples and Examples 8.0.13-x86】和【MySQL Documentation 8.0.13-x86】选项,如图2.8所示。图2.8 自定义安装组件窗口

步骤05 单击【Next】(下一步)按钮,进入安装确认对话框,单击【Execute】(执行)按钮,如图2.9所示。图2.9 准备安装对话框

步骤06 开始安装MySQL文件,安装完成后在【Status】(状态)列表下将显示Complete(安装完成),如图2.10所示。图2.10 安装完成窗口2.1.2 配置MySQL 8.0

MySQL安装完毕之后,需要对服务器进行配置。具体的配置步骤如下:

步骤01 在2.1.1节的最后一步中,单击【Next】(下一步)按钮,将进入产品信息窗口,如图2.11所示。图2.11 产品信息窗口

步骤02 单击【Next】(下一步)按钮,进入服务器配置窗口,如图2.12所示。图2.12 服务器配置窗口

步骤03 单击【Next】(下一步)按钮,进入MySQL服务器类型配置窗口,采用默认设置,如图2.13所示。图2.13 MySQL服务器类型配置窗口

其中,【Config Type】选项用于设置服务器的类型。单击该选项右侧的下三角按钮,即可看到3个选项,如图2.14所示。图2.14 MySQL服务器的类型

图2.14中3个选项的具体含义如下:(1)Development Machine(开发机器):该选项代表典型个人用桌面工作站。假定机器上运行着多个桌面应用程序,将MySQL服务器配置成使用最少的系统资源。(2)Server Machine(服务器):该选项代表服务器,MySQL服务器可以同其他应用程序一起运行,例如FTP、Email和Web服务器。MySQL服务器配置成使用适当比例的系统资源。(3)Dedicated Machine(专用服务器):该选项代表只运行MySQL服务的服务器。假定没有运行其他服务程序,MySQL服务器配置成使用所有可用系统资源。提示作为初学者,建议选择【Development Machine】(开发机器)选项,这样占用系统的资源比较少。

步骤04 单击【Next】(下一步)按钮,打开设置授权方式窗口。其中,第一个单选项的含义是MySQL 8.0提供的新的授权方式,采用SHA256基础的密码加密方法;第二个单选项的含义是传统授权方法(保留5.x版本兼容性)。这里选择第二个单选项,如图2.15所示。图2.15 MySQL服务器的授权方式

步骤05 单击【Next】(下一步)按钮,打开设置服务器的密码窗口,输入两次同样的登录密码后,如图2.16所示。图2.16 设置服务器的登录密码提示系统默认的用户名称为root,如果想添加新用户,可以单击【Add User】(添加用户)按钮。

步骤06 单击【Next】(下一步)按钮,打开设置服务器名称窗口。本案例设置服务器名称为“MySQL”,如图2.17所示。图2.17 设置服务器的名称

步骤07 单击【Next】(下一步)按钮,打开确认设置服务器窗口,单击【Execute】(执行)按钮,如图2.18所示。图2.18 确认设置服务器

系统自动配置MySQL服务器。配置完成后,单击【Finish】(完成)按钮,即可完成服务器的配置,如图2.19所示。图2.19 完成设置服务器

步骤08 按键盘上的【Ctrl+Alt+Del】组合键,打开【任务管理器】对话框,可以看到MySQL服务进程mysqld.exe已经启动了,如图2.20所示。图2.20 任务管理器窗口

至此,就完成了在Windows 10操作系统环境下安装MySQL的操作。2.2 启动服务并登录MySQL数据库

MySQL安装完毕之后,需要启动服务器进程,不然客户端无法连接数据库,客户端通过命令行工具登录数据库。本节将介绍如何启动MySQL服务器和登录MySQL的方法。2.2.1 启动MySQL服务

在前面的配置过程中,已经将MySQL安装为Windows服务,当Windows启动、停止时,MySQL也自动启动、停止。不过,用户还可以使用图形服务工具来控制MySQL服务器或从命令行使用NET命令。

可以通过Windows的服务管理器查看,具体的操作步骤如下。

步骤01 单击【开始】菜单,在搜索框中输入“services.msc”,按【Enter】键确认,如图2.21所示。

步骤02 打开Windows的服务管理器,在其中可以看到服务名为“MySQL”的服务项,其右边状态为“已启动”,表明该服务已经启动,如图2.22所示。图2.21 【运行】对话框图2.22 服务管理器窗口

由于设置了MySQL为自动启动,在这里可以看到服务已经启

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载