购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

第1章
初识MySQL

本章内容:

· MySQL的介绍

· 在Windows上安装MySQL

· 在Linux上安装MySQL

· 在Docker上安装MySQL

本章将讲解MySQL在Web业务场景下的意义和优势,介绍MySQL 8的特性和作用,并讲述在多种环境下安装MySQL的步骤,以便初学者可以快速开始MySQL的学习。

1.1 MySQL是什么

MySQL是当下流行的关系数据库管理系统(Relational Database Management System,RDBMS),使用C和C++语言编写而成,因而具有源码级的可移植性。MySQL可以在Linux、macOS、Novell NetWare、OpenBSD、Solaris、Windows等多种操作系统中运行。在Web应用方面,MySQL是非常好的关系数据库管理系统应用软件之一。作为一种关系数据库管理系统,它将数据保存在不同的数据表中。MySQL所使用的SQL语言是用于访问数据库的常用标准化语言。由于MySQL体积小、速度快、总拥有成本低,尤其是具有开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版性能卓越,因此搭配各种后端语言可以组成良好的开发环境。此外,MySQL既可以嵌入应用程序中,也可以独立支持数据仓库、全文索引和高可用的冗余系统、在线事务处理系统。另外,MySQL还具有如下特点:

· 为多种编程语言提供了API,这些编程语言包括C、C++、Python、Java、Perl、PHP、Ruby、.NET等。

· 支持多线程,可以充分利用CPU资源。

· 具有优化的SQL查询算法,有效地提高了查询速度。

· 提供TCP/IP、ODBC和JDBC等多种数据库连接途径。

· 支持可以处理上千万条记录的大型数据库。

· 支持多种存储引擎,比如InnoDB、MyISAM等。

· MySQL是可以定制的,它采用了GPL协议,因而用户可以通过修改源码来开发自己的MySQL系统。

· 提供多语言支持,常见的编码如中文的GB2312、UTF-8等都可以用作数据表名和数据列名。

· 提供用于管理、检查、优化数据库操作的管理工具。

· 具有在线DDL更改功能,数据架构支持动态应用程序,提高了开发人员操作数据表的灵活性。

· 复制无崩溃从机,可以提高可用性。

· 复制多线程从机,可以提高性能。

1.2 MySQL 8安装和配置

1.2.1 安装版本的选择

在安装MySQL时,应选择自己所需的版本和相应的文件格式。MySQL有开发版本和通用版本。开发版本具有最新功能,但不建议用于生产用途。通用版本可用于生产用途,因此建议安装最新的版本。

MySQL 8.0的版本号由三个数字和一个可选后缀组成,例如MySQL-8.0.3.[x],x可选,如果有,则会随着版本的发布而自增。版本号中的数字解释如下:

· 第一个数字(8)是主版本号。

· 第二个数字(0)是次版本号。主、次版本号一起构成发布的序列号,序列号表示包含稳定的功能集。

· 第三个数字(3)是发布系列中的版本号。每个新的错误修订版的版本号中都会增加此值。一般情况下建议安装最新的版本。

1.2.2 在Windows平台下安装和配置MySQL

MySQL只能安装在Microsoft Windows 64位操作系统中,如果想要安装MySQL 8.0 Server(服务器版),那么还需要在系统中安装Microsoft Visual C++ 2015 Redistributable Package和Microsoft .NET Framework 4.5.2或更高版本。在安装服务器版本之前,应确保在本地系统中已下载好软件安装包。下面将演示在Windows系统中安装MySQL数据库的两种方式。

1.MySQL Installer(利用安装程序安装)

进入MySQL官网下载相关安装包,如图1-1所示。第一个安装包用于在线安装,在网络畅通的情况下,可以选用这种安装方式。第二个是可以离线安装的软件包,一般建议采用这种安装方式。

图1-1 下载安装包

首次下载MySQL安装程序时,安装向导会引导我们完成MySQL产品的初始安装。首次安装需要进行初始设置,MySQL安装程序在初始设置期间会检测主机上安装的现有MySQL产品,并将它们添加到要管理的产品列表中。如图1-2所示,当我们打开MSI文件之后,会提示我们选择安装的类型。

图1-2 选择安装的类型

如图1-2所示,总共有5种安装类型。

①Developer Default(默认安装):用于MySQL应用程序的开发。如果我们想要利用MySQL来进行应用程序的开发,可以选择此安装类型。

②Server only(仅安装服务器):仅安装MySQL服务器。此安装类型在下载MySQL服务器安装包时会让用户选择安装GA版(一般可用性,即稳定版)或开发版。该安装类型使用默认的安装路径和数据存储路径。

③Client only(仅安装客户端):仅安装最新的MySQL应用程序和MySQL连接器。此安装类型类似于默认安装类型,不同之处在于它不包括MySQL服务器或通常与服务器捆绑的客户端程序,例如mysql或mysqladmin。

④Full(完整):安装所有可用的MySQL产品。如果是初学者,那么可以选择此安装类型。

⑤Custom(自定义):此安装类型可以从MySQL安装程序目录中筛选想安装的各个MySQL产品。

选择好想要的安装类型,单击Next按钮,就会进入安装需求检查对话框,如图1-3所示。

图1-3 安装需求检查对话框

在安装需求检查对话框中包括如下内容:

①显示初始设置中的当前步骤。读者在此列表中看到的步骤可能会略有不同,具体步骤取决于主机上已安装的产品、必备软件的可用性以及读者想要安装在主机上的产品。

②按产品列出所有待确认的安装需求。

③安装需求的详细说明可以帮助我们解决安装前需要解决的问题。如果需要安装必备的软件,则该界面会提供下载用的网址(URL)。在下载并安装所需的软件后,单击Check按钮来验证是否已经满足安装需求。

④提供以下辅助安装的操作:

· Back:返回上一步。此操作可以让我们回到上一步重新选择安装类型。

· Execute:让MySQL安装程序尝试为所有选择的安装项目下载和安装必备的软件。

· Next:不进行安装需求检查而继续安装产品,其中不包括未通过安装需求检查的产品。

· Cancel:取消安装MySQL产品。

MySQL网络和身份认证配置,如图1-4所示。

图1-4 MySQL网络配置

在该对话框中有以下选项:

①选择需要配置的服务类型。

②默认的服务端口号,①和②这两个配置可以不做修改。

③建议勾选Show Advanced and Logging Options复选框,以便在后续步骤中设置自定义日志记录和高级选项。

继续往下执行,会出现设置密码的对话框,如图1-5所示。

图1-5 账户密码设置

该对话框包含以下内容:

①给服务设置密码。

②重复输入一次以确认密码,应当确保这两次输入的密码一致。

MySQL服务名称设置,如图1-6所示。

图1-6 MySQL服务名称设置

在该对话框中输入MySQL服务的名称,建议使用默认值。

设置MySQL服务相关的输出日志存储的路径,如图1-7所示。

图1-7 设置MySQL服务输出日志存储的路径

在该对话框中包含以下内容:

①设置MySQL服务的错误日志输出路径。

②设置一般的日志输出路径。

③设置查询日志的输出路径。

④设置二进制日志的输出路径。

验证是否安装成功。如图1-8所示,按住键盘上的Windows键,选择“运行”,然后在弹出的对话框中输入services.msc,并按回车键。

图1-8 进入“运行”对话框

接下来会出现如图1-9所示的服务窗口。如果可以看到MySQL 8.0这个服务,就表示MySQL数据库安装成功。

图1-9 系统服务窗口

在服务成功启动之后,可以使用界面化工具Navicat连接数据库,当出现如图1-10所示的对话框时,输入主机名、端口号以及安装时设置的密码。在单击“测试连接”按钮之后,若出现连接成功的字样,则说明安装与配置都正确。

图1-10 通过界面化工具测试连接

2.在Windows上默认安装MySQL服务

表1-1所示是以默认安装类型安装MySQL服务后生成的相关目录,当我们需要查看相关信息或者数据日志时可能会用到。

表1-1 默认安装MySQL服务之后生成的相关目录

1.2.3 在Linux平台下安装和配置MySQL

使用MySQL Yum存储库安装最新的MySQL GA版本的步骤如下。

1.添加MySQL Yum存储库

要将MySQL Yum存储库添加到系统的存储库列表中,可以使用RPM命令来完成,具体步骤如下:

首先选择并下载适用于目标平台的安装包(发布包)。

我们可以查看目标系统的平台版本(操作系统版本序列号)。如图1-11所示,该平台的版本序列号为7。

图1-11 查看目标系统的操作系统版本序列号

然后下载工具wget,下载完成之后用下面的命令进行安装:

    yum install wget -y

接着下载对应版本的RPM文件,因为目前的平台是7系列,所以选择安装7.3版本的RPM文件。执行如下命令进行下载:

    wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

当出现如图1-12所示的界面时,说明下载成功。

图1-12 下载RPM包

2.安装下载的发布包

安装命令如下:

    yum install platform-and-version-specific-package-name.rpm

需要注意的是,platform-and-version-specific-package-name为下载的RPM包的名称。而后执行如下命令:

    yum install mysql80-community-release-el7-3.noarch.rpm -y

如果出现如图1-13所示的Complete说明,就表示发布包安装完成。

图1-13 发布包安装成功

如果使用的是其他系列的版本,那么可以根据实际情况选择安装相应的发布包。

对于基于EL6的系统,命令的形式为:

    yum install mysql80-community-release-el6-{version-number}.noarch.rpm

对于基于EL7的系统,命令的形式为:

    yum install mysql80-community-release-el7-{version-number}.noarch.rpm

对于基于EL8的系统,命令的形式为:

    yum install mysql80-community-release-el8-{version-number}.noarch.rpm

对于Fedora 34,命令的形式为:

    dnf install mysql80-community-release-fc34-{version-number}.noarch.rpm

对于Fedora 33,命令的形式为:

    dnf install mysql80-community-release-fc33-{version-number}.noarch.rpm
3.安装MySQL

通过以下命令安装MySQL:

    yum install mysql-community-server -y

这条命令将安装MySQL服务器包(mysql-community-server)以及运行该服务器所需组件的包,包括客户端包(mysql-community-client)、客户端和服务器的常见错误消息和字符集(mysql-community-common)以及共享客户端库(mysql-community-libs)。如果出现如图1-14所示的信息,就表示安装成功。

图1-14 安装MySQL

4.启动MySQL服务器

使用以下命令启动MySQL服务器:

    systemctl start mysqld

使用以下命令检查MySQL服务器的状态:

    systemctl status mysqld

查询服务的状态,显示running时表示服务已经启动,如图1-15所示。

图1-15 MySQL服务状态

需要注意的是,如果操作系统已启用systemd,则应使用标准systemctl(或service)命令(例如stop、start、status和restart)来管理MySQL服务器的服务。mysqld服务默认是启用的(在系统重新启动时启用了)。

5.登录MySQL

在安装MySQL服务时系统创建了一个超级用户账户(root)。超级用户的密码已设置并存储在错误日志文件中,如果我们想要知道密码,可以使用如下命令进行查询:

    grep 'temporary password' /var/log/mysqld.log

如图1-16所示,最后输出的字符串就是想要查看的密码。

图1-16 想要查看的密码

我们使用生成的临时密码登录并为超级用户账户设置自定义密码,以便尽快更改root密码。首先执行下面的命令进行登录:

    mysql -uroot -p

如图1-17所示,在登录过程中需要输入密码,可以输入之前查询到的密码进行登录。

图1-17 MySQL登录

然后执行如下命令修改密码:

    alter user 'root'@'localhost' identified by 'NewPass';

在修改密码时注意密码要尽量复杂,需要包含数字、大小写字母和标记符号,否则系统会出现如图1-18所示的提示,提示密码修改出错。

图1-18 修改MySQL账户的密码

1.2.4 在Docker平台下安装和配置MySQL

Docker是一个用于开发、交付和运行应用程序的开放平台。Docker能够将应用程序与基础架构分开,从而快速交付软件。借助Docker,可以采用与管理应用程序相同的方式来管理基础架构。

Docker是当下热门的容器,为了省去Linux下安装配置程序烦琐且易于出错的步骤,笔者增加了本节内容,安装Docker环境后,就能在其下快速地安装Redis服务。

1.在CentOS下安装Docker

安装Docker的系统需求是必须具备一个CentOS 7或者CentOS 8的维护版本,不支持之前的旧版本。

1)卸载旧版本

较旧的Docker版本称为docker或docker-engine。如果安装过这些程序,请卸载它们及其相关的依赖项。

2)更新系统yum工具包

需要安装yum-utils软件包:

    $ sudo yum install -y yum-utils
3)设置稳定的存储库(可选择其中一个)

可以根据自己的网络情况选择存储库地址,推荐使用阿里云和清华大学源,如果设置官方源,那么需要单独设置好网络才可以进行正常操作。

使用官方源地址:

    $ sudo yum-config-manager \
        --add-repo \
    https:// download.docker.com/linux/centos/docker-ce.repo

使用阿里云:

    $ sudo yum-config-manager \
       --add-repo \
    http:// mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

使用清华大学源:

    $ sudo yum-config-manager \
        --add-repo \
    https:// mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
4)安装Docker Engine-Community

安装社区版Docker包:

    $ sudo yum install docker-ce docker-ce-cli containerd.io
5)启动Docker

启动Docker很简单:

    $ sudo systemctl start docker
6)验证是否正确安装

可以使用如下命令来验证Docker是否正确安装:

    $ sudo docker run hello-world
2.在Windows 10下安装Docker

Docker Desktop是Docker在Windows 10和macOS操作系统上的官方安装方式,这种方式依然是先在虚拟机中安装Linux,再安装Docker。用户可以从网上搜索Docker Desktop的安装软件docker-ce-desktop-windows(此方法仅适用于Windows 10操作系统专业版、企业版、教育版和部分家庭版)。

1)安装Hyper-V虚拟机

Hyper-V是微软开发的虚拟机,类似于VMWare或VirtualBox,只是Hyper-V仅适用于Windows 10。这是Docker Desktop for Windows所使用的虚拟机(这个虚拟机一旦启用,VirtualBox、VMWare、Workstation 15及以下版本将无法使用。如果必须在计算机上使用其他虚拟机,则不要在Windows中启动Hyper-V)。

2)启动Hyper-V

启动Hyper-V的操作步骤如下:

在Windows中右击“开始”按钮,在弹出的快捷菜单中选择“应用和功能”命令,如图1-19所示。

打开“程序和功能”窗口,单击“启用或关闭Windows功能”链接,如图1-20所示。

图1-19 选择“应用和功能”命令

图1-20 “程序和功能”窗口

在打开的“Windows功能”对话框中勾选“Hyper-V”复选框,然后单击“确定”按钮,如图1-21所示。

图1-21 勾选“Hyper-V”复选框

3)安装Docker

接下来双击下载的安装Docker的EXE文件,在打开的对话框中单击Next按钮,最后单击Finish按钮完成安装。

安装完成后,Docker会自动启动,通知栏上会出现 图标,表示Docker正在运行,然后按Win+R快捷键,在弹出的“运行”窗口中输入PowerShell。

用户还可以执行命令docker run hello-world来检查是否安装成功。

3.利用Docker安装MySQL
1)下载MySQL镜像

执行docker pull mysql/mysql-server:8.0下载MySQL镜像,如图1-22所示。

图1-22 下载镜像

2)启动MySQL服务

执行如下命令启动MySQL服务:

    docker run --name=mysql1 --restart on-failure -d mysql/mysql-server:8.0
3)其他操作

删除容器的命令如下:

    docker rm -f mysql1

停止容器的命令如下:

    docker stop mysql1
4)查看启动的日志

查看启动日志的命令如下:

    docker logs mysql1

查看MySQL服务的密码的命令如下:

    docker logs mysql1 2>&1 | grep GENERATED

查询到的密码如图1-23所示。

图1-23 查询到的密码

5)登录MySQL服务

登录MySQL服务的命令如下:

    docker exec -it mysql1 mysql -uroot -p

当系统询问时,输入生成的root密码。由于该MYSQL_ONETIME_PASSWORD选项默认为true,因此在将MySQL客户端连接到服务器后,必须通过以下语句来重置服务器root账户的密码:

    alter user 'root'@'localhost' identified by 'password';

或者执行下面的命令进行安装:

    docker run -p 3306:3306 --name mysql \
    -v /root/mysql/log:/var/log/mysql \
    -v /root/mysql/data:/var/lib/mysql \
    -v /root/mysql/conf:/etc/mysql \
    -e MYSQL_ROOT_PASSWORD=123456 \
    -d mysql/mysql-server:8.0

以上命令挂载了服务的日志文件和lib文件,已经设置好了密码。需要注意的是,在执行这条命令之前,要在宿主机的/root/mysql/conf目录下创建my.cnf文件,这个文件是服务启动的配置文件,该配置文件至少应该有如下几行内容:

    [mysqld]
    init_connect='set collation_connection = utf8_general_ci'
    init_connect='set names utf8'
    secure_file_priv=

1.3 如何学习MySQL

在学习MySQL数据库之前,很多读者会问,如何才能更好地学习MySQL的相关技能呢?下面就讲述学习MySQL的方法。

1.培养兴趣

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

2.扎实基础

随着技术应用的不断深入,只有有着扎实的基础功底,才能在技术道路上走得更远。对于MySQL的学习而言,SQL语句是其中最基础的部分,很多功能都通过SQL语句来实现,所以读者在学习的过程中要多编写SQL语句,最好能对同一功能使用不同的SQL语句来实现。

1.4 本章练习

1.下载并安装MySQL数据库。

2.使用配置向导配置MySQL为系统服务,并设置为手动启动或者关闭MySQL服务。 5FhfADv4iMP3Cke668ShyOB2+ZqiR77v5BCOKYrvUaCpgcfcx3PNfpqbS0poedE+

点击中间区域
呼出菜单
上一章
目录
下一章
×