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命令:systemctl start mysqld
设置MySQL开机自启动:systemctl enable mysqld
配置MySQL的root用户密码,我的初始密码为(系统生成的随机密码):prbSywkvW2>g
登录Mysql修改root初始密码并授予远程管理权限
注意:Mysql每条命令都以英文半角分号结尾。
登录Mysql创建一个test数据库并查看
切换当前数据库命令: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源数据库中的信息。
首先查看数据库,登录查看源数据库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)
创建数据表
CREATETABLE `USER` ( `user_id` int(128)NOTNULL AUTO_INCREMENT, `name` varchar(64)NOTNULL, `age` int(11) DEFAULT NULL, PRIMARY KEY (`user_id`)) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci;
说明:
CREATETABLE `USER`: USER表示要创建的表名。 `name` varchar(64)NOTNULL,: name是表的列名,varchar(64)是表数据类型,64表示数据长度,NOT NULL表示数据不可为空。 PRIMARY KEY (`user_id`): user_id是要设置为主键的列名称。 `user_id` int(128)NOTNULL AUTO_INCREMENT,: user_id是主键的列名,int(128)是主键列数据类型和长度,NOT NULL数据不可为空,AUTO_INCREMENT,AUTO_INCREMENT通常用于主键,表示主键自增,数值会自动+1
更新数据表
在年龄age列后面,为USER表新增一列性别sex,0代表女,1代表男。
ALTERTABLE user ADD COLUMN sex tinyint(1)NOTNULL COMMENT 'sex,woman:0,man:1' AFTER `age`;
数据表重命名
修改表名user为student
RENAME TABLE USER TO student;
说明:RENAME TABLE 要修改的表名 TO 修改后的表名;
删除数据表
DROPTABLE student; #注意表删除后不可恢复!
说明:DROP TABLE 要删除的表名;
数据操作
对数据查询、删除、更新、插入等基本操作
重新创建数据表
CREATETABLE `user` ( `id` int(11)NOTNULL 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
说明:在数据库表操作时已经解释讲述过了,此处不再过多讲述。
插入数据
INSERTINTO 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 GROUPBY col_name,...HAVING where_condition ORDERBY 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更新该条数据。
删除数据
DELETEFROM `user` WHERE `name` ='xiaoming';
说明:
User:为表名,WHERE `name` = 'xiaoming':WHERE关键词后面为条件判断name是列名,列名等于xiaoming删除该条数据。
函数操作
MySQL中常用的内置函数
创建数据表
CREATETABLE student_score(sid INT PRIMARY KEY NOTNULL, sname VARCHAR(30), sage INT, ssex VARCHAR(8), score INT(11));insertinto `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()函数
SELECTCOUNT(*)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等进行分组查询。
创建数据表
CREATETABLE `student` ( `sid` int(11)NOTNULL, `sname` varchar(30) DEFAULT NULL, `sage` int(11) DEFAULT NULL, `ssex` varchar(8) DEFAULT NULL, PRIMARY KEY (`sid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;insertinto `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');CREATETABLE `sc` ( `sid` int(11)NOTNULL, `cid` int(11)NOTNULL, `score` int(11) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;insertinto `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);CREATETABLE `course` ( `cid` int(11)NOTNULL, `cname` varchar(30) DEFAULT NULL, `tid` int(11) DEFAULT NULL, PRIMARY KEY (`cid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;insertinto `course`(`cid`,`cname`,`tid`)values(102,'yuwen',2),(101,'shuxue',1);CREATETABLE `teacher` ( `tid` int(11)NOTNULL, `tname` varchar(30) DEFAULT NULL, PRIMARY KEY (`tid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;insertinto `teacher`(`tid`,`tname`)values(2,'liulaoshi'),(1,'wanglaoshi');
查询所有同学的学号和成绩
使用WHERE s. sid = sc.sid可以消除笛卡尔积。
SELECT s.sid,s.sname,c.scoreFROM student AS s ,sc AS c WHERE s.sid= c.sid;
查询语文成绩在80以上同学
SELECT a.score, b.cname, s.snameFROM sc as a, course AS b, student AS s WHERE a.cid= b.cidAND s.sid= a.sidAND a.cid=102AND a.score>80
查询语文成绩比数学成绩高的同学
SELECT a.sid, a.score, s.snameFROM(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.scoreAND a.sid= b.sidAND 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前往后台登陆。登录成功后就可以发布博客了。
报错:Can’t select database
如果在配制完成后安装WordPress的时候,出现Can’t select database
提示(附图如下),代表你的数据库账号密码和地址无误,可能是你的数据库账号权限不足,你需要重新授权数据库,此时可以这样做:
1、打开RDS控制台账号管理。
2、在test_user用户栏,点击修改权限。
3、把未授权的数据库添加进来,给读写权限即可。
4、返回刷新继续安装。