WorkBench操作云上数据库
1. 创建资源
开始实验之前,您需要先创建实验相关资源。
- 在实验室页面,单击创建资源。
- (可选)在实验室页面左侧导航栏中,单击云产品资源列表,可查看本次实验资源相关信息(例如IP地址、子用户信息等)。
说明:资源创建过程需要3~5分钟(视资源不同开通时间有所差异,ACK等资源开通时间较长)。完成实验资源的创建后,您可以在云产品资源列表查看已创建的资源信息,例如:子用户名称、子用户密码、AK ID、AK Secret、资源中的项目名称等。
实验环境一旦开始创建则进入计时阶段,建议学员先基本了解实验具体的步骤、目的,真正开始做实验时再进行创建。
资源创建成功,可在左侧的资源卡片中查看相关资源信息以及RAM子账号信息
2. 实验步骤
- 更新yum源。
执行如下命令,更新MySQL的yum源。
rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
返回结果如图1所示,表示yum源更新完成。
图1 更新MySQL安装源
- 安装MySQL并查看版本。
2.1 执行如下命令,安装MySQL。
yum -y install mysql-community-server --nogpgcheck
2.2 执行如下命令,查看MySQL版本。
mysql -V
返回结果如图2所示,表示您已安装MySQL并查看版本。
图2 安装MySQL并检查版本
- 启动MySQL服务,并将其设置为开机自启动。
3.1 执行如下命令,启动MySQL。
systemctl start mysqld
3.2 执行如下命令,将MySQL设置为开机自启动。
systemctl enable mysqld
返回结果如图3所示,表示您已成功启动MySQL并设置为开机自启动。
图3 启动MySQL并将其设置为开机自启动
- 设置MySQL的root用户密码。
4.1 执行如下命令,获取root用户的初始密码。
grep 'temporary password' /var/log/mysqld.log
在返回结果中您可以查看到root用户的初始密码。
4.2 执行如下命令,使用root用户登录数据库。
mysql -uroot -p
4.3 在“Enter password”处输入4.1步骤查找到的密码,完成后成功进入MySQL操作界面。
4.4 执行如下命令,在MySQL操作窗口界面修改密码安全策略为低,使其只校验密码长度,要求至少8位。
set global validate_password_policy=0;
4.5 执行如下命令,修改root用户初始密码,其中12345678为修改完成的新密码。此处的12345678可根据需要自行设置,本实验后续的操作中暂以它为例。
ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678';
查看root用户初始密码并设置其新密码的操作过程如图4所示。
图4 查看root用户初始密码并设置新密码。
4.6 执行如下命令,对root用户完成授权,以便第三方数据库连接软件能够正常连上云端数据库。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '12345678';
- 下载Workbench。
注意:如果您的本地计算机中已经安装有Workbench,则可省略下载和安装的步骤,直接进入“7. 打开并使用Workbench”步骤。
从Workbench官网https://dev.mysql.com/downloads/workbench/上下载Workbench最新版本,下载前注意选择相应的操作系统版本。目前支持的操作系统有:Windows、UbuntuLinux、RedHat Linux、Fedora、macOS等。这里选择Windows版,单击download,界面如图5所示。进入注册页面后,可以选择不注册下载,如图6所示。
图5 下载Workbench界面
图6 选择不注册下载
- 安装WorkBench。
打开下载完成的Workbench软件,本场景中文件名为“mysql-workbench-community-8.0.31-winx64.msi”(由于操作系统的差异及软件版本的更新原因,不同场景中下载到的安装文件的名称可能不同),按照提示进行安装,安装过程中会出现选择安装模式的选项,可以选择完全安装或自定义安装。安装初始界面如图7所示。
图7 Workbench安装初始界面
- 打开Workbench并连接云数据库。
7.1 从开始菜单打开Workbench,在打开的Workbench主页上选择MySQLConnections右侧的+图标,如图8所示。
图8 解压完成后的bootstrap目录
7.2 进入设置新连接窗口后,在Connection Name处输入连接名称,可以自己命名。在Hostname处输入云数据库中的ECS公网地址,此地址可从实验资源页面中查询得到。在Username处输入root。在Password处单击Storein Vault…,在弹出页面中输入前述MySQL中root用户所设置的新密码,本场景中为12345678。上述几项内容填写完成后,单击右下角的OK即可完成设置。整个云数据库信息设置如图9所示。
图9 云数据库连接信息设置页面
7.3 上述设置完成后,在Workbench主页面中会显示刚才新建的数据库连接,如图10所示。
图10 已经建立好新连接的Workbench主页面
7.4 双击该连接则可进入此连接数据管理主页面,页面中包含了连接名称及数据库及表导航区、查询设计区、结果及输出区等区块,如图11所示。
图11 已经建立好新连接的Workbench主页面
- 新建数据库及数据表。
8.1 新建数据库。
在图12的数据库及表导航区空白处点击鼠标右键,在弹出菜单中选择CreateSchema…,在查询设计区会出现新建数据库页面,在Name处设置数据库名,再按图12所示选择字符集,最后需要单击Apply所建数据库才能真正写入云数据库。上述设置过程如图12所示。
图12 创建数据库并设置相应参数
数据库新建完成后可在云端利用show databases;命令进行验证,验证结果如图13所示。
图13 云端验证数据库建立情况
8.2 新建数据表。
借阅管理数据库成功建立后,在数据库及表导航区会看到所建的数据库,单击借阅管理,在Tables单击右键,选择Createtable…,在设计区出现新建表页面,在Table Name中输入“读者”,选择utf8和utf8_general_ci作为字符集和collation集,按照表1所示结构建立“读者”表的表结构,所有设置完成后单击Apply按钮,整个设置如图14所示。
表1 “读者”表结构
字段名称 |
类型 |
大小 |
主键 |
空值 |
缺省值 |
学号 |
CHAR |
10 |
是 |
否 |
|
姓名 |
CHAR |
50 |
否 |
||
性别 |
CHAR |
1 |
否 |
男 |
|
年龄 |
INT |
否 |
|||
专业 |
CHAR |
10 |
否 |
图14 创建数据表并设置相应参数
读者表创建完成后,左导航栏将显示读者表。右键单击读者表,在弹出菜单中选择SelectRows>Limit 1000,进入记录输入界面后,按表2中所示信息向读者表中插入记录,完成后单击Apply,如图15所示。
特别注意:在输入记录的时候,可以采用复制和粘贴的方法来实现,即首先在Word中选择要复制的记录(只选记录,不选字段),然后在Workbench中对应表(此处为借阅表)的记录最前面(不在任何字段上)右键单击,在弹出菜单中选择Paste Row。
表2 “读者”表数据记录
学号 |
姓名 |
性别 |
年龄 |
专业 |
2013230001 |
吴西 |
男 |
18 |
计应 |
2013230002 |
杨七 |
男 |
22 |
计应 |
2013230003 |
周南 |
女 |
19 |
计应 |
2013230004 |
王天一 |
女 |
21 |
计应 |
2013230005 |
陈晴 |
男 |
17 |
计应 |
图15 表中插入记录
按照上述方法,根据表3在借阅管理数据库中创建图书表,并根据表4内容向图书表中插入记录;根据表5在借阅管理数据库中创建借阅表,并根据表6内容向借阅表中插入记录。两表创建完成并插入记录后的效果如图16和图17所示。
表3 图书表表结构
字段名称 |
类型 |
大小 |
主键 |
空值 |
缺省值 |
图书号 |
CHAR |
4 |
是 |
否 |
|
书名 |
CHAR |
10 |
否 |
||
单价 |
INT |
否 |
表4 图书表的记录
图书号 |
书名 |
单价 |
AK01 |
大学计算机 |
25 |
AK02 |
计算机应用 |
30 |
AK03 |
数据结构 |
35 |
AK04 |
操作系统 |
21 |
图16 新建“图书”表,并插入记录
表5 借阅表表结构
字段名称 |
类型 |
大小 |
主键 |
空值 |
缺省值 |
学号 |
CHAR |
10 |
是 |
否 |
|
图书号 |
CHAR |
4 |
是 |
否 |
|
借期 |
INT |
否 |
表6 借阅表的记录
学号 |
图书号 |
借期 |
2013230001 |
AK01 |
79 |
2013230001 |
AK02 |
15 |
2013230001 |
AK03 |
56 |
2013230002 |
AK01 |
12 |
2013230003 |
AK01 |
65 |
2013230003 |
AK02 |
100 |
图17 新建“借阅”表,并插入记录
- 修改表结构。
修改要求:将图书表中的单价由原来的INT型改为FLOAT型。
在Workbench左导航栏中找到图书表,并在其上单击右键,并在弹出的菜单中选择AlterTable…,进入表结构修改页面。选择单价字段,在类型下拉列表中将类型由原来的INT型修改为FLOAT型,修改页面如图18所示。
图18 修改图书表的表结构
- 查询设计。
查询要求:
A.查询单价不低于25元,且书名中包含“计算机”的所有图书,显示书名和单价。
B.查询借期大于50天的所有读者的学号、姓名、专业、借期、图书号和书名。
C.统计每位同学借书的数量,显示学号和借阅数量。
A查询仅涉及一个图书表,结果数据集要求显示图书名和单价,记录过滤条件之一是单价不低于25元,另一个过滤条件是书名中包含计算机。根据上述条件可写出该查询的SQL语句如下:
select 图书名,单价 from 借阅管理.图书 where 单价>=25and 书名 like ‘%计算机%’;
在MySQL Workbench中新建一个SQL脚本文件,在脚本中输入上述SQL语句,执行脚本,并将SQL脚本文件保存为db02_sql1.sql,执行后的的结果如图19所示。
图19 查询1新建脚本并执行的效果示意
仿照设计查询A的过程,设计查询B和查询C,并分别将查询结果的SQL脚本保存为db02_sql2.sql和db02_sql3.sql。
3. 实验要求
- 请将上面实验的每一步截图,至少需要8张图,图片中应该能够体现自己亲自做的实验,图片名称分别用e8-1.jpg、e8-2.jpg、……、e8-n.jpg保存,并连同3个SQL脚本文件一同打包,并提交到学习平台上,压缩包格式统一为zip格式。
- 西安交通大学的同学,请将文件命名为“你的学号-db02.zip”;非西安交通大学的同学,请将文件命名为“你的学校-你的姓名-db02.zip”或“你的姓名-db02.zip”。
- 所有文档请于实验截止日期前提交。
实验链接:https://developer.aliyun.com/adc/scenario/f5b26e1317314e3b97acb9aa2a14e64c