乐趣区

关于mysql:冬季实战营-动手实战MySQL数据库快速部署实践-领鼠标-云小宝

云起实验室 夏季训练营(1.17-3.8)

可补卡!!!领云小宝
五期夏季实战,从入门到进阶,以最佳实际帮忙开发者,疾速云上实际,云上学习。
体验有礼,点击返回:https://developer.aliyun.com/adc/series/wintercamp
夏季实战营第一期:从零到一上手玩转云服务器

单期工作处分:实战营技能证书 + 定制鼠标
三期工作处分:全网首发冬奥限量版云小宝
五期工作处分:夏季实战营奖牌 + 定制书包 + 无影试用

体验简介

本试验提供一个 Linux 零碎。首先,装置 mysql;而后,执行 mysql 的罕用操作;最初,学习根本的 SQL 语句。

体验此场景后,你能够把握的能力有:

  1. MySQL 装置
  2. MySQL 日常运维治理
  3. 根本 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
  1. 执行如下命令,装置 MySQL。
yum -y install mysql-community-server --nogpgcheck
  1. 执行如下命令,查看 MySQL 版本号。
mysql -V

返回后果如下,示意您已胜利装置 MySQL。

  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 用户的初始密码。

执行以下命令,应用 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 退出数据库。

  1. 执行以下命令,应用 root 用户登录数据库。
mysql -uroot -p12345678
  1. 执行如下命令,创立 test 数据库。
create database test;
  1. 执行如下命令,查看以后数据库列表。此时,能够看到三个数据库:information_schema,mysql,performance_schema,sys,test。
show databases;

留神:进入 mysql 之后,每条命令结尾都要有分号。

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

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

mysqldump -uroot -p test >test.sql
ll

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

阐明:其中参数 -D 是指定数据库为 test。

mysql -uroot -p -Dtest<test.sql

  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;

罕用 SQL

本大节将次要介绍根本的 SQL 语句,数据的增删查改等。

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

而后,在 Mysql 中,执行命令 use test;,连贯 test 数据库。界面提醒 Database changed,示意当初应用的数据库为 test 数据库。

use test;

  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 数据类型,….);

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

语法:INSERT INTO 表名称 VALUES (值 1, 值 2,….);

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

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

语法 2:SELECT 列名称 FROM 表名称; // 查问表中的指定列的数据信息

  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 表名称 = 值;

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

语法:DELETE FROM 表名称 WHERE 列名称 = 值;

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

语法:DROP TABLE 表名称

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

语法:DROP DATABASE 数据库名称

退出移动版