MySQL 入门、安装和客户端管理工具

关系型数据库

随着应用规模扩大和复杂性提升,数据的存储和检索是一个很大的问题,比如对于一个博客系统,文章如何存储?对于社交媒体系统,用户关系和动态如何存储?对于一个电商系统,商品和交易信息如何存储?并且光存储还不够,还要能够很便捷地对数据进行动态查询、更新和删除。

围绕这个问题,早在 40 多年前,IBM 的科学家们就开始研究,并提出关系型数据库管理系统的概念,数据库就是通过特定数据结构组织、存储和管理大量数据的仓库,而关系型数据库管理系统(Relational Database Management System,即 RDBMS),指的是建立在关系模型基础上的数据库。

关系型数据库管理系统可以简称为关系型数据库,具备以下特点:

  • 数据存储在数据表中,比如文章表、用户表;
  • 数据表的行表示一条记录,比如一篇文章或一个用户的所有信息;
  • 数据表的列表示相同类型的数据,比如文章标题、用户名等;
  • 数据表存在主键、外键、索引等结构,主键可以唯一标识一条记录、外键可以与其他表的列建立关联关系、索引可用于加速数据表记录的查询;
  • 行和列构建出数据表,多张数据表汇聚成数据库。

注:通过数组这种内存型存储也可以维护和管理数据,但不利于海量数据,毕竟内存资源有限,而且更致命的是不能持久化;通过文件可以持久化存储海量数据,但是存储和检索 IO 开销太大,性能不足以支撑大量用户的并发请求。而关系型数据库可以同时解决这些问题。

MySQL 数据库

关系型数据库有很多,包括 MySQL、Oracle、SQL Server、SQLite、Postgres 等,但其中最流行的、应用最广泛的当属 MySQL,这很大程度上归因于 MySQL 是开源免费的,并且在大公司的实践中证明它完全可以肩负起海量数据存储,在性能上也足以支撑高并发请求,抗造耐打,还可以不花钱,那可太好了(比起 Oracle 高昂的费用,不要太香),另外,MySQL 与 PHP 也是一对好基友,PHP 原生对 MySQL 有着非常好的支持,世界上最流行的 Web 开发语言 + 世界上最流行的关系型数据库,简直是珠联璧合,也由此诞生了很多知名的应用。这俩关系好到可以穿一条裤子,因此有人戏称「离开了 MySQL,PHP 还能干啥」。

注:目前,国外 Postgres 数据库也日渐流行起来,它也是免费开源的,可能很大程度上是因为 MySQL 被 Oracle 收购后,前景存在很多不确定性。

安装 MySQL

使用 MySQL 之前,需要先安装它,不过在搭建本地 PHP 开发环境环节,我们推荐的集成开发工具默认都包含了 MySQL:

无论是 Laradock、Xampp、MAMP、Laragon 还是 PhpStudy 都内置了对 MySQL 的支持(含客户端和服务端,服务端是存储数据的中央仓库,客户端可以通过 SQL 命令与服务端交互进行增删改查和管理工作),而且开箱即用。所以这里就不单独介绍如何在本地安装 MySQL 了。

注:本系列教程假设你已经掌握基本的 SQL 语句操作,如果你不太了解,可以阅读 W3School SQL 教程学习。

命令行交互

无论是 Mac 还是 Windows 系统,都有大量的 MySQL 客户端工具,最原始的是 MySQL 自带的命令行交互,以 Laradock 为例,我们可以通过在 laradock 项目目录下执行如下命令启动 MySQL 容器(基于 Windows Terminal 1.0 命令行环境演示,Mac 系统中命令完全一样):

启动 mysql 容器

然后进入通过 docker-compose exec mysql bash 进入该容器:

进入 mysql 容器

就可以在客户端运行 mysql -h localhost -u root -p 连接到数据库服务器了(默认密码是 root):

连接 mysql 服务器

接下来,我们就可以运行 SQL 语句与服务器进行交互了,比如通过 show databases; 查看所有数据库(SQL 语句以分号作为结尾,不能省略):

查看所有数据库

你可以在命令行中通过 SQL 语句执行所有 MySQL 数据库 DML/DDL 操作,这里不一一列举了,下面我们将重点介绍通过 GUI 工具来操作数据库。

GUI 工具一览

MySQL Workbench

首先 MySQL 官方提供了适用于 Windows 和 Mac 系统的 MySQL Workbench,下载安装完成后,打开主界面,点击「MySQL Connections」右侧的小加号,添加新的连接,这里我们填写本地 Laradock 对应的连接信息:

MySQL Workbench 新建连接

填写完成后,点击右下角的「Test Connection」,提示成功,则点击「Ok」保存:

MySQL Workbench 连接列表

然后就可以在连接列表中点击 laradock 进入本地 MySQL 数据库管理页面了:

MySQL Workbench 管理界面

接下来,我们就可以通过 MySQL Workbench 图形化界面管理本地 MySQL 数据库了。

注:MySQL Workbench 适用于 Windows 和 Mac 系统。

Sequel Pro

官方提供的工具并不好用,在 Mac 系统中,首选 Sequel Pro 作为 MySQL 客户端工具:

Sequel Pro

它是一个免费的第三方 MySQL 客户端管理工具,非常好用,首次安装后,打开应用,点击左侧下方的「+」新增连接配置,然后将连接名设置为 laradock,接下来,就可以配置本地 MySQL Docker 容器连接信息了:

Sequel Pro 新建连接

配置好了之后,点击「Connect」即可进入 laradock 数据库管理页面,你可以在选择数据库下拉菜单选择要操作的数据库,或者新增数据库:

Sequel Pro 管理界面

然后就可以对这个数据库进行管理了,具体细节可以自行探索,这里不做深入介绍。

注:Sequel Pro 仅限 Mac 系统使用。

PhpStorm

Jetbrains 公司也提供了专门的数据库管理工具 DataGrip

DataGrip

不过该工具需要收费,对于日常一些简单的数据库管理工作,也可以通过 PhpStorm 集成的数据库管理插件完成,在 PhpStorm 主界面右上角,默认有一个「Database」工具条,点击该工具条,在弹出界面左上角点击「+」选择数据源,这里我们选择「MySQL」:

PhpStorm 选择数据源

在弹出窗口配置 MySQL 连接信息(Docker 容器),配置完成后别忘了点击页面底部「下载缺失驱动文件」,否则无法建立连接:

PhpStorm 配置 MySQL 数据源

PhpStorm 配置 MySQL 数据源

下载完成后,点击「Test Connection」,提示成功,则可以点击页面底部「Apply」按钮保存设置,再点击「OK」按钮关闭该窗口。

然后我们就可以在数据源列表点击该连接对本地数据库进行管理了:

PhpStorm 数据源管理

你可以通过右键进行日常 DDL/DML 操作:

PhpStorm 数据源管理

注:PhpStorm 数据源管理功能在 Windows 和 Mac 中均可使用。

Navicat For MySQL

还有一个比较流行的 MySQL 客户端图形化管理工具 Navicat For MySQL

该工具也适用于 Windows 和 Mac 系统,在 Windows 系统上体验更佳,但是需要收费,感兴趣的可以自行去下载使用。

phpMyAdmin

最后,还有一个知名的 phpMyAdmin 项目,让我们可以在 Web 浏览器中管理 MySQL 数据库。在 Laradock 项目中,也内置了对它的支持,要使用它,需要通过如下 Docker 命令启动该容器:

docker-compose up -d phpmyadmin

启动 phpmyadmin 容器

启动完成后,就可以在浏览器中通过 http://localhost:8080 访问 phpMyAdmin 了,我们填写下表单信息(服务器、用户名、密码):

phpmyadmin 首页

注意这里需要填写的是 Docker 容器名 mysql,因为在容器内部通过该名称才可以解析到对应的 MySQL 容器 IP。点击「执行」,即可进入 MySQL 管理界面:

phpmyadmin 管理界面

显然,由于是在浏览器中运行,phpMyAdmin 与所属系统无关,后续为了统一 Windows/Mac 系统演示风格,学院君将基于 phpMyAdmin 进行 MySQL 数据库管理操作。

关于 MySQL 数据库的 DML/DDL 操作,我们在下篇教程中详细介绍。

上一篇: PHP 错误和异常处理(下)

下一篇: MySQL 基本使用(上):DDL 及 DML 语句