mariadb 数据库管理系统时mysql的一个分支,主要有开源社区在维护,采用GPL授权许可mariadb的目的时完全兼容mysql,包括API和命令行,能轻松成为mysql的代替品。
mysql为关系型数据库,这种所谓的“关系型”可以理解为“表格”的概念,一个关系型数据库由一个或者数个表格组成,如图所示的一个表格:
表头(header):每一列的名称;
列(row): 具有相同数据类型的数据集合;
行(col):每一行用来描述某个人或物的具体信息;
值(value):行的具体信息,每个值必须与该列的数据类型相同;
键(key):表中用来识别某个特定的人/物的方法,键的值在当前列中具有唯一性;
MySQL中的数据类型
MySQL有三大类数据类型, 分别为数字、日期\时间、字符串, 这三大类中又更细致的划分了许多子类型:
· 数字类型
· 整数: tinyint、smallint、mediumint、int、bigint
· 浮点数: float、double、real、decimal
· 日期和时间: date、time、datetime、timestamp、year
· 字符串类型
· 字符串: char、varchar
· 文本: tinytext、text、mediumtext、longtext
· 二进制(可用来存储图片、音乐等): tinyblob、blob、mediumblob、longblob
1.配置网络以及yum源, yum search mariadb 查询我们需要安装的软件;
2.yum install -y mariadb-server.x86_64 mariadb.x86_64 ####安装我们的数据库
3.重新启动mariadb服务,设置开机自启动;
4.数据库是非常重要的地方,我们需要对数据库的安全方面考虑,以下几点是我们要考虑的地方:
a.关于selinux 我们可以设置为permissive 警告状态;也可以设置为关闭状态;
b.在系统默认的情况下,mysql会在我们的系统打开端口方便其他客户端链接,我们需要禁用这个端口:(扩展:端口不是独立存在的,它是依附于进程的。某个进程开启,那么它对应的端口就开启了,进程关闭,则该端口也就关闭了。下次若某个进程再次开启,则相应的端口也再次开启。而不要纯粹的理解为关闭掉某个端口,不过可以禁用某个端口。)
通过查询我们知道数据库开启的端口是3306,现在我们需要关闭端口:
禁用mysql的端口号完成;
c.我们还需要设定禁止其他用户禁止网上访问:
重新启动mysql服务就可以;
5.mysql用户设置密码:
回车建进入如下设置:
两次输入密码设置完成;
在进入主页面之前,mysql会提示你是否设置一些相关内容,因为数据库相当重要,所以我们必须以安全为主:
6.让防火墙通过mysql服务
7.使用超级用户身份进入数据库
8.查看mysql数据库里面含有那些数据库
这个就是我们进入mysql数据库,里面有3个数据库;
9.创建westos数据库
注意:数据库里面的命令写完都需要加分号;
10.进入westos数据库 ;创建linux表添加username.passwd等;
11.查看新建表格信息
因为是新创建没有任何信息,所以显示空的列表
12.向表中插入数据
insert 语句可以向表格里面添加一行或者多行数据到数据库
insert [into] 表名 [(列名1,列名2....)] values(值1,值2.....); #[]内容可选
a.追加用户lee,密码123到linux数据库表
b.有时我们需要插入部分数据,或者不按照列表的顺序进行插入
insert into 表名 (列名2,列名4,列名1) values("值2","值4","值1")
13.查询表中的数据
a. select 语句常用来根据一定的规则查询规则到数据库表获取数据
select 列名称 from 表名称 [查询条件]
* 表示查询表中所有的内容
b.按照特定条件查询:
where 关键字用于查询指定条件
select 列名称 from 表名称 where 条件;
示例:select * from stedent where sex="女";
select * from student where id<5 and age>20;
where 子句不仅仅支持 "where 列名 = 值" 这种名等于值的查询形式, 对一般的比较运算的运算符都是支持的, 例如 =、>、<、>=、<、!= 以及一些扩展运算符 is [not] null、in、like 等等。 还可以对查询条件使用 or 和 and 进行组合查询。
14.更新表中的数据
update 语句用来修改表中的数据
update 表名称 set 列名称=新值 where 更新条件;
示例:将用户lee的密码更改为456;
15.删除表中的数据
delete 语句用于删除表中的数据
delete from 表名 where 删除条件
delete from 表明 ####删除表中所有的数据
16.表的修改
alter table 用于对创建后的表格修改
添加列:
alter table 表名 add 列名 列数据类型 [ after 插入位置]
#不指定位置,默认追加到最后位置
追加用户其他信息到指定位置
17.修改列
alter table 表名 change 列名称 列新的名称 新的数据类型
将passwd列给名为password
18.删除列
alter table 表名 drop 列名;
19.重新名命表名称
alter table 表名 rename 新的表明
20.删除整张表
drop tabale 表名;
21.删除整个数据库
drop database 数据库名
22.修改root用户密码
a.使用mysqladmin方式修改数据库密码:
如果没有密码直接回车密码修改成功,否则输入旧密码回车数据库密码修改完成;
23.对mysql用户授权
a.创建可以远程登录的用户,授权westos数据库所有表的select的查询权限,更新授权;
查看授权获得成功:
b. 对本地用户进行授权:
创建本地用户的身份
本地用户授权数据库westo所有文件的插入,删除权限
用户的授权进行刷新
查询授权是否成功:
c.取消某些用户的某些授权指令:
revoke delete on westos.* from [email protected] #取消本地用户对数据库westos所有内容的删除权限;
24.数据库的备份
a,对数据库westos所有文件进行备份
mysqldump -uroot -predhat westos > /mnt/westos.sql ####将westos数据库备份在/mnt/目录下名命为westos.sql
删除数据库原有的westos数据库,创建一个空的westos数据库;
将备份的数据库导入进原来的数据库就可以还原数据:
25.忘记超级用户的密码,可以通过以下步骤改正密码:
跳过密码命令; 输入mtsql直接进入数据库;
更改数据库的超级用户的密码;
密码更改完成,我们输入跳过密码命令的程序进程还在,所以需要我们结束进程才可以密码登录,否则不用密码直接登录;
查询跳过密码命令的进程
强制结束进程,重新启动mariadb服务;可以看到进程已经结束;