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)
创建数据表
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前往后台登陆。登录成功后就可以发布博客了。
报错:Can’t select database
如果在配制完成后安装WordPress的时候,出现Can’t select database
提示(附图如下),代表你的数据库账号密码和地址无误,可能是你的数据库账号权限不足,你需要重新授权数据库,此时可以这样做:
1、打开RDS控制台账号管理。
2、在test_user用户栏,点击修改权限。
3、把未授权的数据库添加进来,给读写权限即可。
4、返回刷新继续安装。