冬季实战营第三期

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 冬季实战营第三期:MySQL数据库进阶实战之一:MySQL数据库快速部署实践

MySQL数据库快速部署实践


这个实验提供一个Linux系统。首先,安装mysql;然后,执行mysql的常用操作;最后,学习基本的SQL语句。
体验此场景后,你可以掌握的能力有:

  1. MySQL安装
  2. MySQL日常运维管理
  3. 基本SQL语句的使用
    MySQL是一个关系型数据库管理系统,本步骤指导您如何在ECS实例上安装MySQL。

执行如下命令,更新YUM源。
rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

  1. 执行如下命令,安装MySQL。

yum -y install mysql-community-server --nogpgcheck

  1. 执行如下命令,查看MySQL版本号。

mysql -V
返回结果如下,表示您已成功安装MySQL。
a087672818024936b5e4e1e5d29c7f3f.png

  1. 执行如下命令,启动MySQL服务。

systemctl start mysqld

  1. 执行如下命令,设置MySQL服务开机自启动。

systemctl enable mysqld

  1. 配置MySQL的root用户密码。

执行如下命令,查看/var/log/mysqld.log文件,获取root用户的初始密码。
grep 'temporary password' /var/log/mysqld.log
返回结果如下所示,您可以查看到root用户的初始密码。
a63c22d465b04626901611cad1a8e5ab.png
执行以下命令,使用root用户登录数据库。
mysql -uroot -p
返回结果如下所示,输入root用户的初始密码。(输入的密码是不会显示出来的)
78e135657d284b47a4321c012cc0c433.png
执行以下命令,修改MySQL的root用户的初始密码。
set global validate_password_policy=0; #修改密码安全策略为低(只校验密码长度,至少8位)。
ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678';
执行以下命令,授予root用户远程管理权限。
GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '12345678';
输入exit退出数据库。
379d871e4c3f4790ae057edea1dd33bc.png

  1. 执行以下命令,使用root用户登录数据库。

mysql -uroot -p12345678

  1. 执行如下命令,创建test数据库。

create database test;

  1. 执行如下命令,查看当前数据库列表。此时,可以看到三个数据库:information_schema ,mysql,performance_schema,sys,test 。

show databases;
注意:进入 mysql 之后,每条命令结尾都要有分号。
79d964a814b54d3a93f9df5bd35ff244.jpg

  1. 执行命令 use mysql;,连接 mysql 数据库。然后执行命令 show tables; ,查看 mysql 数据库中的数据表。使用命令 exit ,退出 MySQL 界面。

use mysql;
show tables;
exit
course-58f7358de77242ec84379253522cbaac-section-23436074ffee4bb8a07ad154274f295b-content-image-1475050413464-IjBs5d.png

  1. 返回 Linux 界面,执行如下命令,将名为 test 的数据库备份到当前目录的 test.sql。界面显示 Enter password,输入 MySQL 数据库的登录密码 12345678 。根据备份的数据库大小,等待时间长短不同。完成后,使用命令 ll 查看备份文件,界面查看到备份文件 test.sql ,完成备份。

mysqldump -uroot -p test >test.sql
ll
course-58f7358de77242ec84379253522cbaac-section-23436074ffee4bb8a07ad154274f295b-content-image-1475050600272-6Q8aHw.png

  1. 返回 Linux 界面,执行如下命令,将 test.sql 导入数据库。界面显示 Enter password ,输入 MySQL 数据库的登录密码 12345678 。

说明:其中参数 -D 是指定数据库为test。
mysql -uroot -p -Dtest<test.sql
course-58f7358de77242ec84379253522cbaac-section-23436074ffee4bb8a07ad154274f295b-content-image-1475050843806-XyQflC.png

  1. 还有一种导入方法:输入命令:mysql -uroot -p12345678 ,进入 MySQL 数据库。输入 use test; ,连接数据库 test ,输入 source /root/test.sql; ,将 test.sql 导入数据库 test ,全部出现 Query OK ,则表示数据库导入成功。

mysql -uroot -p12345678
use test;
source /root/test.sql;
73340b0475124f7da5fa9578dffe5de7.jpg

常用 SQL
本小节将主要介绍基本的 SQL 语句,数据的增删查改等。

  1. 若当前不是在 Mysql 数据库的命令界面,请执行命令:mysql -uroot -p12345678 ,登录到 Mysql 数据库命令行界面。否则,请忽略此操作。

1d45da3465324041a85b6b475a274802.jpg

然后,在Mysql中,执行命令 use test; ,连接 test 数据库。界面提示 Database changed ,表示现在使用的数据库为 test 数据库。

use test;
TB1nUROx7L0gK0jSZFAXXcA9pXa-240-95.png

  1. 执行命令 create table test1 (id int,name char(20)); ,创建一张表,表名为 test1 。test1 表有两列:id 和 name。其中,id 的数据类型为 int,name 的数据类型为 char,且字符长度为 20。

说明:mysql 命令执行完成,页面会提示 Query OK 。

create table test1 (id int,name char(20));
语法:CREATE TABLE 表名称 (列名称1 数据类型,列名称2 数据类型,列名称3 数据类型,....);
course-58f7358de77242ec84379253522cbaac-section-4b1e296f3110459597034c2f661b8ee2-content-image-1475051306437-3RLUkd.png

  1. 执行命令 insert into test1 values(1,"zhangsan"); ,插入一条数据:此条数据的第一列 id 的值为1,第二列 name 的值为zhangsan。

insert into test1 values(1,"zhangsan");
语法:INSERT INTO 表名称 VALUES (值1, 值2,....);
course-58f7358de77242ec84379253522cbaac-section-4b1e296f3110459597034c2f661b8ee2-content-image-1475051367120-bJ0fh4.png

  1. 执行命令 select * from test1; ,查看 test1 表中的全部数据信息。此时,用户可以查看到新插入的一行数据: id 的值为 1 , name 的值为 zhangsan 。

select * from test1;
语法1:SELECT * FROM 表名称; //查询表中的所有列的数据信息

语法2:SELECT 列名称 FROM 表名称; //查询表中的指定列的数据信息
course-58f7358de77242ec84379253522cbaac-section-4b1e296f3110459597034c2f661b8ee2-content-image-1475051418231-pwfch0.png

  1. 执行命令 update test1 set name = "lisi" where id =1; ,更新 test1 表中的数据,也就是,将所有 id 为 1 的 name 值均修改为 lisi 。

update test1 set name = "lisi" where id =1;
select * from test1;
语法:UPDATE 表名称 SET 列名 = 值 WHERE 表名称 = 值;
course-58f7358de77242ec84379253522cbaac-section-4b1e296f3110459597034c2f661b8ee2-content-image-1475051690409-iM2F1S.png

  1. 执行命令 delete from test1 where id =1; ,删除 test1 表中,所有 id 值为 1 的数据。

delete from test1 where id =1;
select * from test1;
语法:DELETE FROM 表名称 WHERE 列名称 = 值;
course-58f7358de77242ec84379253522cbaac-section-4b1e296f3110459597034c2f661b8ee2-content-image-1475051829473-YKUVhf.png

  1. 执行命令 drop table test1; 删除名为 test1 的数据表。

drop table test1;
show tables;
语法:DROP TABLE 表名称
course-58f7358de77242ec84379253522cbaac-section-4b1e296f3110459597034c2f661b8ee2-content-image-1475051891957-EEHnQD.png

  1. 执行命令 drop database test; ,删除名为 test 的数据库。

drop database test;
show databases;
语法:DROP DATABASE 数据库名称

0009ca0c794648e9a04f28c42cf00e82.jpg

最后:背景知识
业务背景
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于Oracle旗下产品。MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。

技术背景
与其他的大型数据库例如:Oracle、DB2、SQL Server等相比,MySQL 自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL 提供的功能已经绰绰有余,而且由于 MySQL 是开放源码软件,因此可以大大降低总体拥有成本。

Linux 作为操作系统,Apache 和 Nginx 作为 Web 服务器,MySQL 作为数据库,PHP/Perl/Python 作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统,被业界称为 LAMP 或 LNMP 组合。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
弹性计算 监控 Linux
冬季实战营第二期
冬季实战营第二期
109 0
|
SQL Web App开发 弹性计算
学习报告:冬季实战营第三期
在《冬季实战营第三期:MySQL数据库进阶实战》的学习报告
262 0
学习报告:冬季实战营第三期
|
弹性计算 关系型数据库 MySQL
关于“冬季实战营第一期”的学习报告
冬奥云小宝带你玩转五期实战营,初识上云基础,非常适合新手上路,上云必备环境准备让您轻松上云。
851 1
关于“冬季实战营第一期”的学习报告
|
弹性计算 Java 关系型数据库
冬季实战营第一期学习报告
冬季实战营第一期学习报告
|
SQL 弹性计算 运维
冬季实战营第三期学习报告
通过本期学期,掌握了MySQL及RDS MySQL基本操作
152 2
|
SQL 弹性计算 运维
冬季实战营第三期
MySQL数据库进阶实战
71 0
|
Web App开发 Prometheus 运维
冬季实战营第四期
零基础容器技术实战----基础学习之阿里云容器服务Kubernetes版快速入门总结
102 0
冬季实战营第四期
|
弹性计算 关系型数据库 MySQL
冬季实战营第一期学习总结
冬季实战营第一期:https://developer.aliyun.com/adc/series/wintercamplist1
123 1
|
关系型数据库 MySQL 分布式数据库
冬季实战营第一期-学习报告
冬季实战营第一期-学习报告
|
弹性计算 关系型数据库 MySQL
冬季实战营第一期
冬季实战营第一期
100 1