云端MySQL的安装及应用
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
yum源更新完成后的页面如图1所示。
图1 更新MySQL安装源
- 安装MySQL并查看版本。
2.1 执行如下命令,安装MySQL。
yum -y install mysql-community-server --nogpgcheck
2.2 执行成功上述命令后,继续在窗口执行MySQL版本检测命令:
mysql -V
上述两部操作执行完成后的页面如图2所示。
图2 安装M ySQL并检查版本
- 启动MySQL服务,并将其设置为开机自启动。
3.1 执行如下命令,启动MySQL。
systemctl start mysqld
3.2 执行如下命令,将MySQL设置为开机自启动:
systemctl enable mysqld
上述命令执行成功后的页面如图3所示。
图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处输入上面查找到的密码,完成后成功进入MySQL操作界面。
4.4 执行如下命令,在MySQL操作窗口界面修改密码安全策略为低,使其只校验密码长度,要求至少8位。
set global validate_password_policy=0;
4.5 执行如下命令, 对root用户初始密码的修改,其中12345678为修改完成的新密码。此处的12345678可根据需要自行设置,本实验后续的操作中暂以它为例。
查看root用户初始密码并设置其新密码的操作过程如图4所示。
ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678';
4.6 输入exit退出数据库操作界面。
exit
图4 查看root用户初始密码并设置新密码
- 设置MySQL默认字符集
5.1 执行如下命令,修改MySQL配置文件的命令。
vim /etc/my.cnf
5.2 主要进行两处修改。
在[mysqld]下添加:
default-storage-engine=INNODB character-set-server=utf8 collation-server=utf8_general_ci
在[mysql]下添加下面语句,若无[mysql],请在配置文件尾部自动添加。
default-character-set=utf8
配置文件的修改细节如图5所示。
图5 my.cnf配置文件修改细节
请注意:进入vim环境后,需要按键盘上的i键进入插入(编辑)模式,完成编辑后,需要先按键盘左上角的Esc键退出编辑模式,然后再输入:wq后回车,退出vim编辑环境。
5.3 修改完成后,保存退出。在命令行继续执行下列命令完成MySQL的重启工作。
systemctl restart mysqld
- 使用root用户登录数据库。
执行如下命令,以root用户身份登录到数据库。
mysql -uroot -p12345678
- 创建并显示数据库。
7.1 在MySQL命令行窗口中执行如下命令,创建借阅管理数据库。
create database 借阅管理;
注意:在MySQL中,每条命令的结尾都要加上分号。
7.2 为了验证数据库是否成功创建,可用如下命令查看已经创建的数据库是否存在。
show databases;
可以看到在当前数据库系统中共有五个数据库,分别为:information_schema ,mysql,performance_schema,sys,借阅管理,其中借阅管理是新建数据库,其它四个是系统自带数据库。
创建数据库并显示数据库的效果如图6所示。
图6 创建新数据库“借阅管理”并显示已有数据库
- 创建数据表。
8.1 请按照表1所示结构,在借阅管理数据库中创建读者表。
表1 读者表结构
字段名称 |
类型 |
大小 |
主键 |
空值 |
缺省值 |
学号 |
CHAR |
10 |
是 |
否 |
|
姓名 |
CHAR |
50 |
否 |
||
性别 |
CHAR |
1 |
否 |
男 |
|
年龄 |
INT |
否 |
|||
专业 |
CHAR |
10 |
否 |
注意:因为读者表是借阅管理数据库中的表,因此,在创建表之前请一定先使用use命令打开数据库借阅管理,具体命令如下:
use 借阅管理;
如果没有执行数据库打开命令,而直接创建表,则会出现“No database selected”的错误提示。
正确打开数据库后,请使用以下命令创建“读者”表:
create table 读者( 学号 char(10) not null primary key, 姓名 char(20) not null, 性别 char(1) not null default '男', 年龄 int not null default 18, 专业 char(20) not null );
上述创建错误及正确打开数据库并创建数据表的效果如图7所示。
图7 打开数据库并创建数据表的执行过程
8.2 使用show tables命令显示借阅管理数据库下的数据表,可以看到已经有读者表了,具体命令如下。
show tables;
执行上述命令后的页面如图8所示。
图8 打开借阅管理数据库并显示该库所包含的表
- 添加数据记录。
9.1 表2是需要插入的数据记录,使用MySQL命令将表2中的数据插入数据表读者中。
表2 读者表数据记录
学号 |
姓名 |
性别 |
年龄 |
专业 |
2013230001 |
吴西 |
男 |
18 |
计应 |
2013230002 |
杨七 |
男 |
22 |
计应 |
2013230003 |
周南 |
女 |
19 |
计应 |
2013230004 |
王天一 |
女 |
21 |
计应 |
2013230005 |
陈晴 |
男 |
17 |
计应 |
插入数据时可采用多条insert命令完成,也可使用一条insert命令完成多条记录插入,若采用第2种方案,则具体命令如下。
insert into 读者(学号, 姓名, 性别, 年龄, 专业) values('2013230001', '吴西', '男', 18, '计应'), ('2013230002', '杨七', '男', 22, '计应'), ('2013230003', '周南', '女', 19, '计应'), ('2013230004', '王天一', '女', 21, '计应'), ('2013230005', '陈晴', '男', 17, '计应');
数据插入成功后的效果如图9所示。
图9 读者表中插入数据并成功的效果
9.2 插入成功后,可使用select命令对插入结果进行验证,具体命令如下。
select * from 读者;
执行验证后的效果如图10所示。
图10 读者表数据记录插入成功效果
- 更新数据记录。
更新要求:在读者表中完成如下更新操作。
请将姓名为“周南”和“陈晴”两位读者的专业更改为“科英”;
将所有读者的年龄加2岁。
10.1 数据更新要求一需要使用update命令,此处属于局部更新,即只更新部分记录,所以更新时需要加上条件。具体更新命令如下。
update 读者 set 专业='科英' where 姓名='周南' or 姓名='陈晴';
成功执行更新,并验证后的效果如图11所示。
图11 更新操作顺利执行并验证
10.2 数据更新要求二是对所有记录进行更新,因此在使用update时不必加上where条件,具体更新语句如下。
update 读者 set 年龄=年龄+2;
执行上述语句后的结果如图12所示。
图12 更新操作前后数据对比
- 查询数据记录。
查询要求:在“读者”表中完成如下查询操作。
查询“年龄”大于20岁的所有女学生。
查询姓名中包含“陈”且是“计应”专业的男生。
11.1 查询要求一对读者的年龄和性别进行查询与过滤,查询过滤要用到select语句,还需要加上特定条件,即年龄>20并且性别为女,具体语句如下。
select * from 读者 where 年龄>20 and 性别='女';
11.2 查询要求二是带有模式匹配的多条件查询,既要满足姓名中包含“陈”,又要满足专业为“科英”的条件要求,具体语句如下。
select * from 读者 where 姓名 like '%陈%' and 专业='科英';
注意:上述命令输入时要特别注意必须使用半角下的引号,否则就会报错。
执行完上述两个操作后的效果如图13所示。
图13 查询操作前后的数据对比
- 删除数据记录。
删除要求:在“读者”表中完成如下删除操作。
删除“学号”为“2013230004”的读者的信息
删除所有女读者的信息。
12.1 删除要求一是对特定读者进行删除,所以需要加上特定条件,即学号=“2013230004”,具体语句如下。
delete from 读者 where 学号='2013230004';
12.2 删除要求二是对一类信息进行删除,即性别=“女”的记录,具体语句如下.
delete from 读者 where 性别='女';
执行完上述两个操作后的效果如图14所示。
图14 删除操作前后数据对比
- 数据库导出。
数据库导出本质是对数据库进行备份或迁移。大多数情况下,导出的格式为sql,这样的sql可以被保存,也可以被移动到其他MySQL(甚至其他数据库管理系统中,如SQL Server)中,实现数据库的快速移植和保存。
返回Linux 界面,执行如下命令,将名为借阅管理的数据库备份到当前目录,备份名称为借阅管理.sql。界面显示Enterpassword,输入MySQL数据库的登录密码(此处为12345678)。根据备份的数据库大小,等待时间长短不同。完成后,使用命令 ls查看备份文件,界面查看到备份文件“借阅管理.sql”,完成备份。
mysqldump -uroot -p 借阅管理>借阅管理.sql ls
完成备份后的效果如图15所示。
图15 数据库导出(备份)操作
- 数据库导入。
数据库导入是数据库导出的逆过程,目的是将保存的数据库备份文件(sql文件)恢复到当前数据库管理系统中,或者移植到新的数据库管理中。
返回Linux界面,执行如下命令,将借阅管理.sql导入一个新的数据库中,将数据库命名为借阅管理新。界面显示Enter password,输入MySQL数据库的登录密码(此处为12345678)。
特别注意:由于数据库系统中并没有借阅管理新这个数据库,所以,在导入数据前要先行创建数据库借阅管理新,否则系统会报错提示Unknown database 借阅管理新。
14.1 进入MySQL,执行create建库命令,并使用show命令查看已经建好的数据库,前述操作过程如图16所示。
mysql -uroot -p12345678 create database 借阅管理新; show databases;
图16 导入出错及新建数据库页面效果
14.2 返回到Linux界面执行如下命令:
mysql -uroot -p -D 借阅管理新<借阅管理.sql
说明:其中参数-D是指定数据库为借阅管理新。
14.3 进入MySQL,再利用下列命令查看导入的新数据库的具体内容。
use 借阅管理新; show databases; select * from 读者;
上述操作的执行效果如图17所示。
图17 导入成功后的库表检测效果
3. 实验要求
- 请将上面实验的每一步截图,分别用e7-1.jpg、e7-2.jpg、……、e7-n.jpg保存,至少截取8张图片,并打包提交到学习平台上,压缩包格式统一为zip格式。
- 西安交通大学的同学,请将文件命名为“你的学号-db1.zip”;非西安交通大学的同学,请将文件命名为“你的学校-你的姓名-db1.zip”或“你的姓名-db1.zip”。
- 所有文档请于实验截止日期前提交。
实验链接:https://developer.aliyun.com/adc/scenario/fa5e626f2f5d4125998fa7bb5ea1e39f