云起实验室 夏季训练营(1.17-3.8)
可补卡!!!领云小宝
五期夏季实战,从入门到进阶,以最佳实际帮忙开发者,疾速云上实际,云上学习。
体验有礼,点击返回:https://developer.aliyun.com/adc/series/wintercamp
夏季实战营第一期:从零到一上手玩转云服务器
单期工作处分:实战营技能证书 + 定制鼠标
三期工作处分:全网首发冬奥限量版云小宝
五期工作处分:夏季实战营奖牌 + 定制书包 + 无影试用
体验简介
本试验提供一个 Linux 零碎。首先,装置 mysql;而后,执行 mysql 的罕用操作;最初,学习根本的 SQL 语句。
体验此场景后,你能够把握的能力有:
- MySQL 装置
- MySQL 日常运维治理
- 根本 SQL 语句的应用
背景常识
业务背景
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 实例上装置 MySQL。
1. 执行如下命令,更新 YUM 源。
rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
- 执行如下命令,装置 MySQL。
yum -y install mysql-community-server --nogpgcheck
- 执行如下命令,查看 MySQL 版本号。
mysql -V
返回后果如下,示意您已胜利装置 MySQL。
- 执行如下命令,启动 MySQL 服务。
systemctl start mysqld
- 执行如下命令,设置 MySQL 服务开机自启动。
systemctl enable mysqld
- 配置 MySQL 的 root 用户明码。
执行如下命令,查看 /var/log/mysqld.log 文件,获取 root 用户的初始密码。
grep 'temporary password' /var/log/mysqld.log
返回后果如下所示,您能够查看到 root 用户的初始密码。
执行以下命令,应用 root 用户登录数据库。
mysql -uroot -p
返回后果如下所示,输出 root 用户的初始密码。(输出的明码是不会显示进去的)
执行以下命令,批改 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 退出数据库。
- 执行以下命令,应用 root 用户登录数据库。
mysql -uroot -p12345678
- 执行如下命令,创立 test 数据库。
create database test;
- 执行如下命令,查看以后数据库列表。此时,能够看到三个数据库:information_schema,mysql,performance_schema,sys,test。
show databases;
留神:进入 mysql 之后,每条命令结尾都要有分号。
- 执行命令 use mysql;,连贯 mysql 数据库。而后执行命令 show tables;,查看 mysql 数据库中的数据表。应用命令 exit,退出 MySQL 界面。
use mysql;
show tables;
exit
- 返回 Linux 界面,执行如下命令,将名为 test 的数据库备份到当前目录的 test.sql。界面显示 Enter password,输出 MySQL 数据库的登录明码 12345678。依据备份的数据库大小,等待时间长短不同。实现后,应用命令 ll 查看备份文件,界面查看到备份文件 test.sql,实现备份。
mysqldump -uroot -p test >test.sql
ll
- 返回 Linux 界面,执行如下命令,将 test.sql 导入数据库。界面显示 Enter password,输出 MySQL 数据库的登录明码 12345678。
阐明:其中参数 -D 是指定数据库为 test。
mysql -uroot -p -Dtest<test.sql
- 还有一种导入办法:输出命令: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;
罕用 SQL
本大节将次要介绍根本的 SQL 语句,数据的增删查改等。
- 若以后不是在 Mysql 数据库的命令界面,请执行命令:mysql -uroot -p12345678,登录到 Mysql 数据库命令行界面。否则,请疏忽此操作。
而后,在 Mysql 中,执行命令 use test;,连贯 test 数据库。界面提醒 Database changed,示意当初应用的数据库为 test 数据库。
use test;
- 执行命令 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 数据类型,….);
- 执行命令 insert into test1 values(1,”zhangsan”);,插入一条数据:此条数据的第一列 id 的值为 1,第二列 name 的值为 zhangsan。
insert into test1 values(1,"zhangsan");
语法:INSERT INTO 表名称 VALUES (值 1, 值 2,….);
- 执行命令 select * from test1;,查看 test1 表中的全副数据信息。此时,用户能够查看到新插入的一行数据:id 的值为 1,name 的值为 zhangsan。
select * from test1;
语法 1:SELECT * FROM 表名称; // 查问表中的所有列的数据信息
语法 2:SELECT 列名称 FROM 表名称; // 查问表中的指定列的数据信息
- 执行命令 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 表名称 = 值;
- 执行命令 delete from test1 where id =1;,删除 test1 表中,所有 id 值为 1 的数据。
delete from test1 where id =1;
select * from test1;
语法:DELETE FROM 表名称 WHERE 列名称 = 值;
- 执行命令 drop table test1; 删除名为 test1 的数据表。
drop table test1;
show tables;
语法:DROP TABLE 表名称
- 执行命令 drop database test;,删除名为 test 的数据库。
drop database test;
show databases;
语法:DROP DATABASE 数据库名称