MariaDB快速入门指南

目录

前言

一、数据库中的数据结构 与SQL语言

1、数据结构

2 、SQL语言

二、MariaDB安装及初始化配置

1、安装

2、配置防火墙

3、初始化服务

4、小试牛刀

三、管理用户及授权

1、创建用户

2、给用户授权

3、查看用户权限

4、移除用户权限

四、创建及管理数据库、表单

1、创建数据库

2、创建数据库表单

3、修改数据表单及数据

①插入数据

②修改数据

③删除数据

五、数据库备份与恢复

1、数据库备份

2、数据库恢复

前言:

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB之于MySQL,类似于CentOS之于Redhat。由于Oracle拥有MySQL的名字和海豚商标,基于此如果各公司继续用Mysql可能存在法律纠纷,于是纷纷开始选择兼容性好而且研发力量强大的MariaDB。

一、数据库中的数据结构 与SQL语言

1、数据库简介及数据结构

数据库系统是一个用于数据查询管理的软件,数据库系统查询的是以特定格式存储数据的数据库。所以数据库系统可以操作的数据库并不止一个。数据库下的数据整合单位为表,表中每行为一个元组,也就是一个实体属性的集合,表中每一列为每个实例的形同属性值的集合。

MariaDB属于关系型数据库系统(RDBS),即用实体的一些属性信息,构成一个集合(元组),多个实体的具有相同属性集元组构成一张列表,表内在通过域,键,属性和元组上的约束条件与其他表建立关联关系。

数据要遵守的约束 constraint

●主键:在众多列中有一个列(或多个列)被标识为特殊列,此列中属性的值在众多实体相同的属性中具有唯一性,该列中的值被称为主键。主键的值不能为空。且一张表中只能有一个主键。

●唯一键:在众多列中有一个(或多个列),每个值都能表示出该元组,也就是说该列的值具有唯一性。该列中的元素可以成为唯一键

●外键:一个表中的某字段可填入的数据取决于另一个表的主键或唯一键已有的数据

●检查:字段值在一定范围内

2、 SQL语言:

SQL语言可以理解成向服务端提问的语言,SQL语言按照功能可以分为几种子语言:

数据定义语言(DDL):创建和管理数据库,包括创建修改表,定义索引,管理约束条件。DDL操作对象为数据库内部的对象。

数据操纵语言(DML):查询和更新数据库中的数据,用于添加,删除,更新,查询。DML的操作对象是表的内部数据。而不会涉及到表的定义,结构的修改。

数据控制语言(DCL) :对用户的权限控制

数据查询语言(dql):对数据库查询

SQL语言查询的的操作可以分为:

限制(选择):挑选出符合条件的行。返回与查询语句中的条件(断言相匹配的元组)

投影:只返回元组中相关的列,即返回元组中相关的属性

联结:返回与联结条件相匹配的元组,

联结条件可以分为:

有条件联结(条件联结)

无需满足任何条件(笛卡尔积)

二、MariaDB安装及初始化配置

1、安装:

Centos 7 yum仓库默认就有mariadb安装包直接安装即可。

yum install mariadb mariadb-server -y #安装mariadb客户端和服务端程序
systemctl start mariadb		  #启动程序
systemctl enable mariadb		   #设为开机自启动

2、配置防火墙

很多生产环境中需要使用站库分离的技术,如果需要让root管理员帐户能够用远程访问数据库,可设置防火墙允许对本机mysql服务程序的访问请求即可:

3、初始化服务

安装完成后需进行初始化设置:

mysql_secure_installation	      #直接执行初始化命令,会弹出交互配置信息
Enter current password for root (enter for none):#初次进入密码为空,直接回车
New password: 	           #输入要为root用户设置的数据库密码。
Re-enter new password:            #重复再输入一次密码。
Remove anonymous users? [Y/n] y      #删除匿名帐号
Disallow root login remotely? [Y/n] n #是否禁止root用户从远程登录,安全起见应禁止,这里为做实验方便这里不禁止。
Remove test database and access to it? [Y/n] y	#是否删除test数据库,想留着也随意
Reload privilege tables now? [Y/n] y        #刷新授权表,让初始化后的设定立即生效

确认服务是否开启,默认监听在tcp3306端口

4、小试牛刀

①使用mysql -u “用户名” -p 指明用密码登录,回车输入密码即可。可输入help;查看使用帮助。

          tips:-u用用户名之间可用空格也可不用空格。

-p不指定密码可回车输入密文密码,如想明文输入与密码间不能用空格。

如:

mysql -uroot -p12345678

②使用set password = password(‘密码‘) ; 设定密码

使用select user();    查看当前登录用户                   tips:① mariadb中命令都要以";" 结尾,表示命令输入完毕。

② 数据库中的用户root和其他用户名与当前操作系统用户名无关,你可以把数据库软件当作一种操作系统,有自己的用户列表,root为管理员。

三、管理用户及授权

生产中数据库管理系统需要多部门协同管理数据库内容,所以需要创建出多个数据库专用的帐户,然后再进行合理的权限分配,以达到提升工作效率的目的。

1、创建用户的语法为:CREATE USER 用户名@主机名 IDENTIFIED BY ‘密码‘;

tips:   数据库中用户名全称由两部分组成,"用户名"@"登陆终端(可以是IP地址)"。

2、给用户授权使用GRANT命令,授权命令常用格式如下:

命令 作用
GRANT 权限 ON 数据库.表单名称 TO 用户名@主机名 对某个特定数据库中的特定表单给予授权。
GRANT 权限 ON 数据库.* TO 用户名@主机名 对某个特定数据库中的所有表单给予授权。
GRANT 权限 ON *.* TO 用户名@主机名 对所有数据库及所有表单给予授权。
GRANT 权限1,权限2 ON 数据库.* TO 用户名@主机名 对某个数据库中的所有表单给予多个授权。
GRANT ALL PRIVILEGES ON *.* TO 用户名@主机名 对所有数据库及所有表单给予全部授权,(谨慎操作)。

例:

3、查看用户权限使用show grants for  "用户名全称";

4、同时移除用户权限用命令revoke代替GRANT即可。

四、创建及管理数据库、表单

MariaDB数据库管理系统最重要的作用之一就是能够管理数据库及表单内容,一个数据库中可以存放多个数据表,数据表是数据库中最实质的内容。

常用管理数据库及表单命令:


用法


作用


CREATE database 数据库名称。


创建新的数据库。


DESCRIBE 表单名称;


描述表单。


UPDATE 表单名称 SET attribute=新值 WHERE attribute > 原始值;


更新表单中的数据。


USE 数据库名称;


指定使用的数据库。


SHOW databases;


显示当前已有的数据库。


SHOW tables;


显示当前数据库中的表单。


SELECT * FROM 表单名称;


从表单中选中某个记录值。


DELETE FROM 表单名 WHERE attribute=值;


从表单中删除某个记录值。

1、创建数据库示例:

2、创建数据库表单示例:

要想创建数据表单,就要用use切换到某个指定的数据库中,如在新建的shudian数据库中创建一个叫做mybook的表单。新建表单需要进行表单初始化即需要定义存储数据内容的结构,咱们分别定义三个字段项,能够存储15个字符的name字段是用来保存书籍名称的,而整数类型的price与pages则分别存储书籍价格和页数。

        3、修改数据表单及数据

①插入数据:

向刚刚创建的mybook数据库表单写入一条书籍信息,插入数据库内容要使用insert命令,写清表单名称以及对应的字段项目,就可以插入一条名称叫做linuxprobe的书籍啦,它的价格和页数分别是60元和518页。命令执行后也就意味着书籍信息已经被写入成功了,咱们便可以来查询表单中的内容啦,使用select命令查询表单内容的时候需要加上想要查询的字段,如果想查看表单中的所有内容也可以干脆使用*(星号)通配符来显示所有内容:

②修改数据:

用update命令把刚刚插入的书籍价格修改为55元,然后再用select命令指定查看下书籍的名称和价格信息。

③删除表单

4、数据库内容查询

一般数据库表单中都会有成千上万条的数据条目,例如刚刚创建用于保存书籍信息的mybook表单,如果经过时间的推移里面的书籍信息也会变得越来越多,那么如果只是想查看售卖价格大于某个价格的书籍时又该如何定义查询语句呢?咱们先使用刚刚学习过的insert插入命令来依次插入4条书籍信息:

要想让查询结果更加精准,那么就需要把select结合where命令来一起使用了,where是用于在数据库中进行匹配查询的条件命令,咱们可以设置一个查询的条件,那么就仅会查找出符合该条件的数据内容,常用的参数包括有:


参数


作用


=


相等。


<>或!=


不相等。


>


大于。


<


小于。


>=


大于或等于。


<=


小于或等于。


BETWEEN


在某个范围内。


LIKE


搜索一个例子。


IN


在列中搜索多个值。

例:查找出mybook表单中价格大于40元或价格不等于60元的书籍

五、数据库备份与恢复

1、数据库备份

mysqldump命令用于备份数据库数据,格式为:“mysqldump [参数] [数据库名称],其中参数与mysql命令大致相同,-u参数用于定义登陆数据库的用户名称,而-p参数代表密码提示符。例如接下来把linuxprobe数据库内容导出成一个文件保存到root管理员用户的家目录中:

2、数据库恢复

上一步中已将数据库备份,这次我们来尝试删除数据库并恢复。

数据恢复方法如下:

 mysql -u root -p linuxprobe < /root/linuxprobeDB.dump
时间: 2024-10-18 16:24:19

MariaDB快速入门指南的相关文章

JWPlayer快速入门指南(中文)

将JW Player嵌入到网页中非常的简单,只需要进行如下3个步骤: 1.解压mediaplayer-viral.zip文件,将jwplayer.js和player.swf文件拷贝到工程中: 2.在页面引入jwplayer.js文件: <script type="text/javascript" src="/jwplayer/jwplayer.js"></script> 3.将下面代码粘贴在body标签内,如下所示: <div id=&

Chapter 0.SymmetricDS快速入门指南( Quick Start Guide)

本文档是SymmetricDS3.6.14文档的第一章节Quick Start Guide文档的翻译,的目的是帮助读者快速搭建一个SymmetricDS集群并普及一些基本概念术语. 本文档描述了如何在两个SymmetricDS节点之间同步两个相同schema的数据库.下面的例子构建了一个分销业务模型,有一个中央数据库(我们叫它root或者corp节点)和多个零售商店的数据库(我们叫它client或者store节点).对于本教程,我们将只有一个store(商店)节点,如下图.如果你愿意,可以再教程

AngularJS快速入门指南20:快速参考

thead>tr>th, table.reference>tbody>tr>th, table.reference>tfoot>tr>th, table.reference>thead>tr>td, table.reference>tbody>tr>td, table.reference>tfoot>tr>td { padding: 8px; line-height: 1.42857143; vertic

AngularJS快速入门指南05:控制器

AngularJS控制器用来控制AngularJS applications的数据. AngularJS控制器就是普通的JavaScript对象. AngularJS控制器 AngularJS applications通过控制器进行控制. ng-controller指令定义了一个application的控制器. 一个控制器就是一个JavaScript对象,它可以通过标准的JavaScript对象构造函数来创建. <div ng-app="myApp" ng-controller=

[转] Clojure 快速入门指南:1/3

[From] http://huangz.iteye.com/blog/1325228 导读 本文的目标是为熟悉 Ruby.Python或者其他类似语言.并对 Lisp 或者函数式编程有一定程度了解的程序员写的 Clojure 快速入门指南. 为了让文章尽可能地精炼且简单易懂,本文有以下三个特点: 一:不对读者的知识水平作任何假设,当遇上重要的知识点时,只给出 wikipedia 等网站的链接引用而不对知识点进行解释,有需要的读者可以沿着链接查看,没需要的直接略过就行了. 二:和第一条类似,没有

AngularJS快速入门指南15:API

thead>tr>th, table.reference>tbody>tr>th, table.reference>tfoot>tr>th, table.reference>thead>tr>td, table.reference>tbody>tr>td, table.reference>tfoot>tr>td { padding: 8px; line-height: 1.42857143; vertic

AngularJS快速入门指南14:数据验证

thead>tr>th, table.reference>tbody>tr>th, table.reference>tfoot>tr>th, table.reference>thead>tr>td, table.reference>tbody>tr>td, table.reference>tfoot>tr>td { padding: 8px; line-height: 1.42857143; vertic

AngularJS快速入门指南17:Includes

使用AngularJS,你可以在HTML中包含其它的HTML文件. 在HTML中包含其它HTML文件? 当前的HTML文档还不支持该功能.不过W3C建议在后续的HTML版本中增加HTML imports功能,以支持在HTML中包含其它的HTML文件. <link rel="import" href="/path/navigation.html"> 在服务端包含文件 大部分的web服务器都支持服务端包含文件(Server Side Includes).通过

AngularJS快速入门指南16:Bootstrap

thead>tr>th, table.reference>tbody>tr>th, table.reference>tfoot>tr>th, table.reference>thead>tr>td, table.reference>tbody>tr>td, table.reference>tfoot>tr>td { padding: 8px; line-height: 1.42857143; vertic