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 系统中命令完全一样):
然后进入通过 docker-compose exec mysql bash
进入该容器:
就可以在客户端运行 mysql -h localhost -u root -p
连接到数据库服务器了(默认密码是 root
):
接下来,我们就可以运行 SQL 语句与服务器进行交互了,比如通过 show databases;
查看所有数据库(SQL 语句以分号作为结尾,不能省略):
你可以在命令行中通过 SQL 语句执行所有 MySQL 数据库 DML/DDL 操作,这里不一一列举了,下面我们将重点介绍通过 GUI 工具来操作数据库。
GUI 工具一览
MySQL Workbench
首先 MySQL 官方提供了适用于 Windows 和 Mac 系统的 MySQL Workbench,下载安装完成后,打开主界面,点击「MySQL Connections」右侧的小加号,添加新的连接,这里我们填写本地 Laradock 对应的连接信息:
填写完成后,点击右下角的「Test Connection」,提示成功,则点击「Ok」保存:
然后就可以在连接列表中点击 laradock 进入本地 MySQL 数据库管理页面了:
接下来,我们就可以通过 MySQL Workbench 图形化界面管理本地 MySQL 数据库了。
注:MySQL Workbench 适用于 Windows 和 Mac 系统。
Sequel Pro
官方提供的工具并不好用,在 Mac 系统中,首选 Sequel Pro 作为 MySQL 客户端工具:
它是一个免费的第三方 MySQL 客户端管理工具,非常好用,首次安装后,打开应用,点击左侧下方的「+」新增连接配置,然后将连接名设置为 laradock
,接下来,就可以配置本地 MySQL Docker 容器连接信息了:
配置好了之后,点击「Connect」即可进入 laradock
数据库管理页面,你可以在选择数据库下拉菜单选择要操作的数据库,或者新增数据库:
然后就可以对这个数据库进行管理了,具体细节可以自行探索,这里不做深入介绍。
注:Sequel Pro 仅限 Mac 系统使用。
PhpStorm
Jetbrains 公司也提供了专门的数据库管理工具 DataGrip:
不过该工具需要收费,对于日常一些简单的数据库管理工作,也可以通过 PhpStorm 集成的数据库管理插件完成,在 PhpStorm 主界面右上角,默认有一个「Database」工具条,点击该工具条,在弹出界面左上角点击「+」选择数据源,这里我们选择「MySQL」:
在弹出窗口配置 MySQL 连接信息(Docker 容器),配置完成后别忘了点击页面底部「下载缺失驱动文件」,否则无法建立连接:
下载完成后,点击「Test Connection」,提示成功,则可以点击页面底部「Apply」按钮保存设置,再点击「OK」按钮关闭该窗口。
然后我们就可以在数据源列表点击该连接对本地数据库进行管理了:
你可以通过右键进行日常 DDL/DML 操作:
注:PhpStorm 数据源管理功能在 Windows 和 Mac 中均可使用。
Navicat For MySQL
还有一个比较流行的 MySQL 客户端图形化管理工具 Navicat For MySQL:
该工具也适用于 Windows 和 Mac 系统,在 Windows 系统上体验更佳,但是需要收费,感兴趣的可以自行去下载使用。
phpMyAdmin
最后,还有一个知名的 phpMyAdmin 项目,让我们可以在 Web 浏览器中管理 MySQL 数据库。在 Laradock 项目中,也内置了对它的支持,要使用它,需要通过如下 Docker 命令启动该容器:
docker-compose up -d phpmyadmin
启动完成后,就可以在浏览器中通过 http://localhost:8080
访问 phpMyAdmin 了,我们填写下表单信息(服务器、用户名、密码):
注意这里需要填写的是 Docker 容器名 mysql
,因为在容器内部通过该名称才可以解析到对应的 MySQL 容器 IP。点击「执行」,即可进入 MySQL 管理界面:
显然,由于是在浏览器中运行,phpMyAdmin 与所属系统无关,后续为了统一 Windows/Mac 系统演示风格,学院君将基于 phpMyAdmin 进行 MySQL 数据库管理操作。
关于 MySQL 数据库的 DML/DDL 操作,我们在下篇教程中详细介绍。
No Comments