冬季实战营第三期:MySQL数据库进阶实战笔记

MySQL数据库快速部署实践

首先安装mysql然后执行mysql的一些常用操作最后学习基本的SQL语句。

MySQL安装与配置

在安装Mysql前先更新YUM源命令如下:

​rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

然后再安装Mysql,按教程这里直接yum进行安装,如下(安装MySQL版本为5.7):

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

冬季实战营第三期:MySQL数据库进阶实战笔记

启动MySQL命令:​systemctl start mysqld

设置MySQL开机自启动​systemctl enable mysqld

配置MySQL的root用户密码我的初始密码为(系统生成的随机密码):​prbSywkvW2>g

冬季实战营第三期:MySQL数据库进阶实战笔记

登录Mysql修改root初始密码并授予远程管理权限

注意:Mysql每条命令都以英文半角分号结尾。

冬季实战营第三期:MySQL数据库进阶实战笔记

登录Mysql创建一个test数据库并查看

冬季实战营第三期:MySQL数据库进阶实战笔记

切换当前数据库命令​use 数据库名;

查看当前库所有表:​show tables;

备份test数据库数据到当前目录的test.sql​mysqldump -uroot -p test >test.sql

当前目录的test.sql导入数据库​mysql -uroot -p -Dtest<test.sql

另外一种导入方式:进入数据库后,执行​source /root/test.sql;将 test.sql 导入数据库 test,全部出现 Query OK ,则表示数据库导入成功。

常用 SQL

切换当前数据库命令​use 数据库名; #界面提示Database changed表示成功

创建表的命令:​create table test1 (id int,name char(20)); #语法create table test1 (id int,name char(20));

插入数据命令:​insert into test1 values(1,"zhangsan"); #语法INSERT INTO 表名 VALUES (值1, 值2,....);

指定表全部数据​select * from test1; #语法SELECT * FROM 表名;

更新指定表数据:​update test1 set name = "lisi" where id =1; #语法UPDATE 表名 SET 列名 = 值 WHERE 表名 = 值;

删除指定表数据:​delete from test1 where id =1; #语法DELETE FROM 表名 WHERE 列名 = 值;

删除指定表:​drop table test1; #DROP TABLE 表名;

删除指定库:​drop database test; #DROP DATABASE 数据库名称;

冬季实战营第三期:MySQL数据库进阶实战笔记

在云端创建MySQL数据库

登录本地MySQL数据库,并查看本地MySQL源数据库中的信息。

首先查看数据库,登录查看源数据库​​bakery​、其中的表​​customer​和​​product​,以及表中的数据

使用子用户登录阿里云云数据库RDS控制台进入RDS实例控制台,创建一个普通账号,再创建一个数据库授权给新建的普通账号。

然后进入数据传输服务DTS控制台(地址是:DTS控制台),在数据迁移页面,配置迁移任务

先配制的是源库信息,数据库类型选择MySQL,接入方式选择公网IP,实例地区选择实例地域,IP地址端口 数据库账号密码输入RDS云数据库的。然后配制目标库信息,实例选择RDS实例,数据库类型选择MySQL,接入方式选择阿里云实例,实例地区选择实例的地域,RDS实例ID 选择实验资源中提供的目标数据库的实例ID数据库账号和密码是自己新建的数据库账号密码。

然后点击测试连接以进行下一步,配置迁移任务的迁移类型及列表本地MySQL数据库中的bakery数据库移动到已选择对象的列表中。配置后,点击 预检查并启动等待一会,完成预检查,检查结果为 预检查通过100% 然后点击下一步,此时迁移任务的状态为迁移中,等待几分钟,状态变为已完成则完成迁移。

再次打开云数据库RDS点击登录数据库进入数据库管理登录界面数据库类型为MySQL,实例地区为该实例的地域,实例ID选择该实例即可,账号和密码输入自己新建的账号和密码即可。点击登录,登录成功后,查看数据库表,证明数据库迁移成功

MySQL数据库基础

通过阿里云DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。

数据库启动与连接

首先打开云数据库RDS管理控制台RDS管理控制台),创建一个高级权限的MySQL账号test_user和一个数据库(user_db然后使用新建的账号test_user登录MySQL,登录成功,进入数据管理服务系统DMS

数据库表操作

对数据库表的基本操作,新增、删除、更新和重命名等

首先切换登录数据库user_db

创建数据表

CREATE TABLE `USER` (
  `user_id` int(128) NOT NULL AUTO_INCREMENT,
  `name` varchar(64) NOT NULL,
  `age` int(11) DEFAULT NULL,
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci;

说明:

CREATE TABLE `USER`:
USER表示要创建的表名。
`name` varchar(64) NOT NULL,name是表的列名,varchar(64)是表数据类型,64表示数据长度,NOT NULL表示数据不可为空。
PRIMARY KEY (`user_id`)user_id是要设置为主键的列名称。
`user_id` int(128) NOT NULL AUTO_INCREMENT,user_id是主键的列名,int(128)是主键列数据类型和长度,NOT NULL数据不可为空,AUTO_INCREMENT,AUTO_INCREMENT通常用于主键,表示主键自增,数值会自动+1

更新数据表

在年龄age列后面,为USER表新增一列性别sex,0代表女,1代表男

ALTER TABLE user ADD COLUMN sex tinyint(1) NOT NULL COMMENT 'sex,woman:0,man:1' AFTER `age`;

数据表重命名

修改表名user为student

RENAME TABLE USER TO student;

说明:RENAME TABLE 要修改的表名 TO 修改后的表名;

删除数据表

DROP TABLE student; #注意表删除后不可恢复!

说明:DROP TABLE 要删除的表名;

数据操作

数据查询、删除、更新、插入等基本操作

重新创建数据表

CREATE TABLE `user` (
 `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
 `name` varchar(32) DEFAULT NULL COMMENT 'name',
 `age` int(11) DEFAULT NULL COMMENT 'age',
 `address` varchar(32) DEFAULT NULL COMMENT 'address',
 `sex` tinyint(1) DEFAULT NULL COMMENT 'sex,woman:0,man:1',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

说明:在数据库表操作时已经解释讲述过了,此处不再过多讲述。

插入数据

INSERT INTO USER
       (name, age, address, sex)
VALUES
       ('zhangsan', 21, 'jiangxi', 0),
       ('lisi', 22, 'hubei', 0),
       ('wangwu', 23, 'hunan', 0),
       ('lilei', 24, 'henan', 1),
       ('hanmeimei', 25, 'hebei', 1),
       ('xiaoming', 26, 'shandong', 1),
       ('xiaoli', 27, 'shanxi', 1) ;

说明:

table_name(col_name,...)中的字段名列表必须和values(expr,...)字段值列表一致。

如果数据是字符型,必须使用单引号或者双引号。

被AUTO_INCREMENT标记的自动递增的主键,在插入数据时,可以不设置值。

查询数据

SELECT id,name,age,address,sex FROM user;

语法:

SELECT col_name,...
  FROM table_name
 WHERE where_condition
 GROUP BY col_name,...
HAVING where_condition
 ORDER BY col_name,...
 LIMIT offset,row_count

更新数据

UPDATE `user` SET `age` = 28,`address` = 'sichuan' WHERE `name` = 'xiaoming' ;

说明:

​user:表名;`age` = 28​age是列名,表示修改为28;​WHERE `name` = 'xiaoming'WHERE关键词后面是条件判断name是列名,列名等于xiaoming更新该条数据。

删除数据

DELETE FROM `user` WHERE `name` = 'xiaoming' ;

说明:

User为表名,WHERE `name` = 'xiaoming'WHERE关键词后面为条件判断name是列名,列名等于xiaoming删除该条数据。

函数操作

MySQL中常用的内置函数

创建数据表

CREATE TABLE student_score(sid INT PRIMARY KEY NOT NULL, sname VARCHAR(30), sage INT, ssex VARCHAR(8), score INT(11));
insert into `student_score`(`sid`, `sname`, `sage`, `ssex`,`score`)
values (1001, 'xiaohua', 17,'0', 75),
 (1002, 'xiaohong', 18,'0', 80),
 (1003, 'wangwu', 18,'1', 90),
 (1004, 'lisi', 17,'1', 68),
 (1005, 'zhangsan', 19,'1', 73),
 (1006, 'xiaohei', 19,'1', 100),
 (1007, 'xiaoma', 20,'0', 77),
 (1008, 'xiaoli', 17,'1', 82),
 (1009, 'xiaobai', 19,'0', 88),
 (1010, 'wentong', 18,'0', 53);

AVG()函数

SELECT avg(score) FROM student_score;

说明:返回该表(student_score数值列score的平均值

COUNT()函数

SELECT COUNT(*) FROM student_score;

说明:返回该表(student_score的记录数

MAX()函数

SELECT MAX(score) FROM student_score;

说明:返回该表(student_score数值列score的最大值

MIN()函数

SELECT MIN(score) FROM student_score;

说明:返回该表(student_score数值列score的最小值

SUM()函数

SELECT SUM(score) FROM student_score;

说明:返回该表(student_score数值列score的总数

组合查询

使用GROUP BY、HAVING和ORDER BY等进行分组查询。

创建数据表

CREATE TABLE `student` (
 `sid` int(11) NOT NULL,
 `sname` varchar(30) DEFAULT NULL,
 `sage` int(11) DEFAULT NULL,
 `ssex` varchar(8) DEFAULT NULL,
 PRIMARY KEY (`sid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into `student`(`sid`,`sname`,`sage`,`ssex`) values
(1005,'xiaohua',19,'0'),
(1004,'xiaohong',18,'0'),
(1003,'wangwu',18,'1'),
(1002,'lisi',17,'1'),
(1001,'zhangsan',18,'1');
CREATE TABLE `sc` (
 `sid` int(11) NOT NULL,
 `cid` int(11) NOT NULL,
 `score` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into `sc`(`sid`,`cid`,`score`) values
(1001,101,75),
(1001,102,85),
(1002,101,65),
(1002,102,95),
(1003,101,65),
(1003,102,95),
(1004,101,80),
(1004,102,80),
(1005,101,75),
(1005,102,85);
CREATE TABLE `course` (
 `cid` int(11) NOT NULL,
 `cname` varchar(30) DEFAULT NULL,
 `tid` int(11) DEFAULT NULL,
 PRIMARY KEY (`cid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into `course`(`cid`,`cname`,`tid`) values
(102,'yuwen',2),
(101,'shuxue',1);
CREATE TABLE `teacher` (
 `tid` int(11) NOT NULL,
 `tname` varchar(30) DEFAULT NULL,
 PRIMARY KEY (`tid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into `teacher`(`tid`,`tname`) values
(2,'liulaoshi'),
(1,'wanglaoshi');

查询所有同学的学号和成绩

使用WHERE s. sid = sc.sid可以消除笛卡尔积。

SELECT s.sid ,s.sname ,c.score FROM student AS s ,sc AS c WHERE s.sid = c.sid ;

查询语文成绩在80以上同学

SELECT a.score,
       b.cname,
       s.sname
  FROM sc as a,
       course AS b,
       student AS s
 WHERE a.cid= b.cid
   AND s.sid= a.sid
   AND a.cid= 102
   AND a.score> 80

查询语文成绩比数学成绩高的同学

SELECT a.sid,
       a.score,
       s.sname
  FROM(
SELECT sid, score
  FROM sc
 WHERE cid= "102") a,
       (
SELECT sid, score
  FROM sc
 WHERE cid= "101") b,
       student as s
 WHERE a.score > b.score
   AND a.sid= b.sid
   AND s.sid= a.sid

使用RDS MySQL和ECS搭建个人博客

创建数据库和数据库账号

进入RDS实例管理控制台创建一个普通数据库账号​test_user),密码为​Password1213用来连接登录数据库再创建一个数据库(​wordpress)授权给新建的数据库账号(​test_user),用来存储我们的wp网站数据。

部署环境

我们使用的是Apache后端服务器PHP运行环境

安装Apache和必要的扩展包命令(显示Complete!表示安装完成):

yum -y install httpd httpd-manual mod_ssl mod_perl mod_auth_mysql

启动Apache服务的命令:​systemctl start httpd.service

重启Apache服务的命令:​systemctl restart httpd

安装PHP和必要的扩展包命令(显示Complete!表示安装完成):

yum -y install php php-mysql gd php-gd gd-devel php-xml php-common php-mbstring php-ldap php-pear php-xmlrpc php-imap

创建PHP测试页面以下命令是将​<?php phpinfo(); ?>写入到​/var/www/html/phpinfo.php文件中,重启Apache打开​http://公网IP/phpinfo.php即可看到效果:

echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php

安装和配置WordPress

安装WordPress博客然后连接到RDS数据库

安装WordPress命令:​yum -y install wordpress

安装完成后必须要修改配制文件,修改wp-config.php指向路径为绝对路径命令

ln -snf /etc/wordpress/wp-config.php /usr/share/wordpress/wp-config.php

然后需要把WordPress网站源码移动到Apache根目录下,首先在​/var/www/html目录创建​wp-blog文件夹用来存放网站的源码,命令为:

mkdir /var/www/html/wp-blog #在该目录创建文件夹
mv * /var/www/html/wp-blog/ #移动当前目录下所有文件

修改​wp-config.php里的数据库配制:

​database_name_here数据库名称​wordpress

​username_here数据库用户名​test_user

​password_here登录密码​Password1213

RDS连接地址在云产品资源里面可以直接看到,例如:​rm-uf6r9wgwy0iz15qpy.mysql.rds.aliyuncs.com

直接命令行修改命令为:

sed -i 's/database_name_here/wordpress/' /var/www/html/wp-blog/wp-config.php
sed -i 's/username_here/test_user/' /var/www/html/wp-blog/wp-config.php
sed -i 's/password_here/Password1213/' /var/www/html/wp-blog/wp-config.php
sed -i 's/localhost/此处更换为你的RDS地址/' /var/www/html/wp-blog/wp-config.php

配制完成后,记得要重启Apache让修改生效喔。重启后打开地址对WordPress进行初始化安装:

​http://公网IP/wp-blog/wp-admin/install.php

打开地址后输入​设置站点名称(Site Title)、管理员用户名(Username)、密码(Password)和邮箱(Your Email),然后单击Install WordPress完成WordPress初始化安装显示Success!就是安装成功了。点击Log In前往后台登陆。登录成功后就可以发布博客了。

冬季实战营第三期:MySQL数据库进阶实战笔记

报错:Can’t select database

如果在配制完成后安装WordPress的时候,出现​​Can’t select database​提示(附图如下),代表你的数据库账号密码和地址无误,可能是你的数据库账号权限不足,你需要重新授权数据库,此时可以这样做:

1、打开RDS控制台账号管理。

2、在test_user用户栏,点击修改权限。

3、把未授权的数据库添加进来,给读写权限即可。

4、返回刷新继续安装。

冬季实战营第三期:MySQL数据库进阶实战笔记

上一篇:注册集群接入MSE


下一篇:基于数加分析*工作报告