mariadb入门
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 groupinstall mariadb mariadb-server -y #安装mariadb客户端和服务端程序 systemctl start mariadb #启动程序 systemctl enable mariadb #设为开机自启动 |
安装完成后需进行初始化设置:
1
2
3
4
5
6
7
8
|
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 #刷新授权表,让初始化后的设定立即生效 |
使用mysql -u “用户名” -p 指明用密码登录,回车输入密码即可。可输入help;查看使用帮助。
tips:-u用用户名之间可用空格也可不用空格。
-p不指定密码可回车输入密文密码,如想明文输入与密码间不能用空格。
例如:
mysql -uroot -p12345678 |
使用set password = password('密码') ; 设定密码
使用select user(); 查看当前登录用户 tips:① mariadb中命令都要以";" 结尾,表示命令输入完毕。
三、管理用户及授权
生产中数据库管理系统需要多部门协同管理数据库内容,所以需要创建出多个数据库专用的帐户,然后再进行合理的权限分配,以达到提升工作效率的目的。
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 用户名@主机名 | 对所有数据库及所有表单给予全部授权,(谨慎操作)。 |
权限管理
mysql对于权限这块有以下限制:
all privileges:除grant外的所有权限
select:仅查权限
select,insert:查和插入权限
...
usage:无访问权限
alter:使用alter table
alter routine:使用alter procedure和drop procedure
create:使用create table
create routine:使用create procedure
create temporary tables:使用create temporary tables
create user:使用create user、drop user、rename user和revoke all privileges
create view:使用create view
delete:使用delete
drop:使用drop table
execute:使用call和存储过程
file:使用select into outfile 和 load data infile
grant option:使用grant 和 revoke
index:使用index
insert:使用insert
lock tables:使用lock table
process:使用show full processlist
select:使用select
show databases:使用show databases
show view:使用show view
update:使用update
reload:使用flush
shutdown:使用mysqladmin shutdown(关闭MySQL)
super:使用change master、kill、logs、purge、master和set global。还允许mysqladmin调试登陆
replication client:服务器位置的访问
replication slave:由复制从属使用
对于数据库及内部其他权限如下:
数据库名.* 数据库中的所有
数据库名.表 指定数据库中的某张表
数据库名.存储过程 指定数据库中的存储过程
*.* 所有数据库
对于用户和IP的权限如下:
用户名@IP地址 用户只能在改IP下才能访问
用户名@192.168.1.% 用户只能在改IP段下才能访问(通配符%表示任意)
用户名@% 用户可以再任意IP下访问(默认IP地址为%)
1、查看权限:
show grants for '用户'@'IP地址'
2、授权
grant 权限 on 数据库.表 to '用户'@'IP地址'
3、取消授权
revoke 权限 on 数据库.表 from '用户名'@'IP地址'
授权实例如下:
grant all privileges on db1.tb1 TO '用户名'@'IP' grant select on db1.* TO '用户名'@'IP' grant select,insert on *.* TO '用户名'@'IP' revoke select on db1.tb1 from '用户名'@'IP'
四、创建及管理数据库、表单
MariaDB数据库管理系统最重要的作用之一就是能够管理数据库及表单内容,一个数据库中可以存放多个数据表,数据表是数据库中最实质的内容。
常用管理数据库及表单命令:
用法 |
作用 |
CREATE database 数据库名称。 |
创建新的数据库。 |
DESCRIBE 表单名称; |
描述表单。 |
UPDATE 表单名称 SET attribute=新值 WHERE attribute > 原始值; |
更新表单中的数据。 |
USE 数据库名称; |
指定使用的数据库。 |
SHOW databases; |
显示当前已有的数据库。 |
SHOW tables; |
显示当前数据库中的表单。 |
SELECT * FROM 表单名称; |
从表单中选中某个记录值。 |
DELETE FROM 表单名 WHERE attribute=值; |
从表单中删除某个记录值。 |
五、数据库备份与恢复
1、数据库备份
mysqldump命令用于备份数据库数据,格式为:“mysqldump [参数] [数据库名称],其中参数与mysql命令大致相同,-u参数用于定义登陆数据库的用户名称,而-p参数代表密码提示符。例如接下来把linuxprobe数据库内容导出成一个文件保存到root管理员用户的家目录中
2、数据库恢复
上一步中已将数据库备份,这次我们来尝试删除数据库并恢复
数据恢复方法如下:
1
|
mysql -u root -p linuxprobe < /root/linuxprobeDB .dump |
mariadb入门的更多相关文章
- C基础 mariadb处理简单案例
引言 MariaDB 是一款灰常不错开源数据库. 这里直接用它来解决业务问题. 业务需求: 现在数据库中表示按照天分表的. 突然我们需要按照月来处理数据. 例如输入一个玩家id, 查找这个玩家这个月内 ...
- 学习 Linux,101: 使用基本 SQL 命令
概述 在本教程中,将学习结构化查询语言 (SQL),包括: 使用基本 SQL 命令 执行基本数据操作 本教程将简要介绍您需要知道的与 LPI 102 考试相关的 SQL 概念. 回页首 数据库和 ...
- Linux 必掌握的 SQL 命令
数据库和 SQL 在本系列教程中,目前我们使用平面文本文件来存储数据.平面文本文件可能适合相对较少的数据,但它们对存储大量数据或查询该数据没有多大帮助.多年来,为该目的开发了多种数据库,包括分层和网络 ...
- 使用基本 SQL 命令
概述 在本教程中,将学习结构化查询语言 (SQL),包括: 使用基本 SQL 命令 执行基本数据操做 数据库和 SQL 在本系列教程中,目前我们使用平面文本文件来存储数据.平面文本文件可能适合相对较少 ...
- MySQL入门——在Linux下安装和卸载MariaDB
MySQL入门——在Linux下安装和卸载MariaDB 摘要:本文主要学习了如何在Linux系统中安装和卸载MariaDB数据库. 查看有没有安装过MariaDB 使用命令查看有没有安装过: [ro ...
- linux入门系列19--数据库管理系统(DBMS)之MariaDB
前面讲完Linux下一系列服务的配置和使用之后,本文简单介绍一款数据库管理系统(MySQL的兄弟)MariaDB. 如果你有MySQL或其他数据的使用经验,MariaDB使用起来将非常轻松. 本文讲解 ...
- Linux基础入门之vsFTP+MySQL/MariaDB认证实现虚拟用户配置详解
https://www.dwhd.org/20150603_144841.html 摘要 VSFTP可以使用系统账户或者匿名账户登录,但是出于安全的考虑,通常建议使用vsftp虚拟账户来登录ftp服务 ...
- MySQL/MariaDB数据库备份与恢复之mysqlpump入门操作
创建测试用表:MariaDB [music]> create table summary(id int,info char(128));Query OK, 0 rows affected (0 ...
- MariaDB + Visual Studio 2017 环境下的 ODBC 入门开发
参考: Easysoft公司提供的ODBC教程 微软提供的ODBC文档 环境: Windows 10 x64 1803 MariaDB TX 10.2.14 x64 MariaDB ODBC Conn ...
随机推荐
- 大数据学习之BigData常用算法和数据结构
大数据学习之BigData常用算法和数据结构 1.Bloom Filter 由一个很长的二进制向量和一系列hash函数组成 优点:可以减少IO操作,省空间 缺点:不支持删除,有 ...
- how to catch error in make error message
make 2>&1 | grep error -C 10 -n
- RTTI RAII
RTTI(Run Time Type Identification)即通过运行时类型识别,程序能够使用基类的指针或引用来检查着这些指针或引用所指的对象的实际派生类型. RTTI提供了以下两个非常有用的 ...
- [已解决]报错: Python Scrapy - service_identity(opentype) not working and cannot install
解决:更新安装service_identity pip3 install service_identity --force --upgrade
- python调用tushare获取沪深股通十大成交股
接口:hsgt_top10 描述:获取沪股通.深股通每日前十大成交详细数据 注:tushare库下载和初始化教程,请查阅我之前的文章 输入参数 名称 | 类型 | ...
- MATLAB图像uint8,uint16,double, rgb转灰度解释
1.uint8,uint16与double 为了节省存储空间,matlab为图像提供了特殊的数据类型uint8(8位无符号整数),以此方式存储的图像称作8位图像.matlab读入图像的数据是uint8 ...
- java性能调优02
1.字符串优化处理 1.1 常量池的优化:当String对象拥有相同的值时,他们只引用常量池的同一个拷贝. String a="123"; String b="123&q ...
- 当vue页面异步加载的数据想在页面上渲染怎么办
<template> <div class="test"> <div v-for="(item, index) in arr" : ...
- Centos安装mysql5.6.33
下载安装包 百度网盘地址: 链接:https://pan.baidu.com/s/15xaHIqvjggS_rFP_jL-BVA 提取码:mh48 上传到服务器 mkdir mysql #在/us ...
- cd 切换
切换