MySQL8文档存储攻略

前言

今天我们来聊一下MySQL当中提供的文档功能,简单来说我们可以把MySQL当作像MongoDB这样的文档数据库来使用。不仅仅如此,MySQL提供文档操作接口和SQL操作接口他们之间是互通的,我们即可以用整个接口来操作文档数据库同时也可以利用文档API来操作SQL。

MySQL文档存储

上图是官网文档介绍MySQL文档存储,我们可以看到左边是SQL关系型的表。右边是NoSQL的JSON文档集合,我们知道在NOSQL中集合就是相当于表的概念,文档就相当于我们表的一行行数据,字段就对应着表的字段,也就是在底层MySQL已经这两种格式了。而在这个存储格式之上它提供两种接口。一种是我们所属性的SQL API,也就是我们平时写的SQL输入,另一种是他提供新的协议叫X Protocol,这个协议即支持我们对文档操作,也可以通过SQL执行文档操作。在这之上就是应用层,比如MySQL的连接驱动有Python,Java,C,等等。同时在MySQL8提供一个客户端工具叫MySQL Shell。

MySQL Shell

我们可以简单理解为它是MySQL命令行客户端增强版。我们可以直接在客户端上写JavaScript,Python,SQL,这些都可以作为客户端的脚本语言进行连接我们MySQL服务器,进行命令行的操作,同时他也支持X Protocal协议的API去来做文档操作。同时它还有InnoDB集群管理功能。接下来我们就会以MySQL Shell这个工具来实战操作一下

环境准备

准备一台虚拟机安装MySQL8.0.35

主机名 IP地址 操作系统 数据库版本
mysql8 192.168.17.76 CentOS 7.9 8.0.35

下载安装

在官网下载。Select Version:选择8.0.35,Select Operating System:选择Linux - Generic,Select OS Version:选择Linux - Generic (glibc 2.17) (x86, 64-bit)。下载mysql-shell-8.0.35-linux-glibc2.17-x86-64bit.tar.gz文件,上传到服务器上解压并安装

[mysql@mysql8 app]$ tar -xf mysql-shell-8.0.35-linux-glibc2.17-x86-64bit.tar.gz [mysql@mysql8 app]$ mv mysql-shell-8.0.35-linux-glibc2.17-x86-64bit mysql-shell8.0.35 [mysql@mysql8 app]$ cat >> ~/.bash_profile export MYSQL_SHELL_HOME=/app/mysql-shell8.0.35 > export PATH=$PATH:$MYSQL_SHELL_HOME/bin > EOF [mysql@mysql8 app]$ source ~/.bash_profile [mysql@mysql8 app]$ which mysqlsh /app/mysql-shell8.0.35/bin/mysqlsh [mysql@mysql8 app]$ mysqlsh --version mysqlsh Ver 8.0.35 for Linux on x86_64 - for MySQL 8.0.35 (MySQL Community Server (GPL)) [mysql@mysql8 app]$