热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MariaDB数据库的安装及对其管理

MySQL的体系结构数据库安装完毕后,应该先对数据库进行配置,在对其进行数据的操作innodb行级锁,互不影响别的数据操作,解决数据并发更改数据的冲突
MySQL的体系结构
 
数据库安装完毕后,应该先对数据库进行配置,在对其进行数据的操作
innodb 行级锁,互不影响别的数据操作,解决数据并发更改数据的冲突
 
使用yum进行安装,但是yum源地址所依赖的库文件需要在挂载的光盘repo中
yum源地址配置官网: https://downloads.mariadb.org/mariadb/repositories/#mirror=neusoft&distro=CentOS&distro_release=centos6-amd64--centos6&version=10.2
 
MairaDB的特性:
单进程,多线程
多种存储引擎可选
 
高版本不同的名字
MyISAM==>Aria
InnoDB==>XtraDB
#~~~~~~~~~~~~~~~~~~~~~~~~~
centos7启动mariadb服务命令:
systemctl enable mariadb
 
进入mariadb命令: mysql
显示数据库中的表:show databases
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
maria数据库装完毕后只允许本机访问
 
匿名账号不需要设置,随便输入,权限不大,访问数据不全
 
用户设置账户密码命令:mysql_secure_installation
mysql加帐号密码后的访问代码为: mysql -u??? -p????(明文显示,可以敲击回车不显示的输入密码)
 
maria数据库的用户名为 user+host组成一个用户名
 
linux下数据库默认的存储路径为:datadir=/var/lib/mysql(可以更改)
 
在数据中创建一个新的库命令为:create database ***;
 
构建数据表时,应考虑其属性之间的关系,按照第三范式的要求来进行创建
 
mysql的数据类型分为可变和固定两种类型:固定的字节若达不到则会在末尾补零(建议使用固定,因为整体规整,方便查看和索引)
 
使用可变字节:数据可长可短,但不规整,节省磁盘空间
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
常见数据单位:
char(n):固定长度,最多255个字符
varchar(n):可变长度,最多65535个字符
tinytext :可变长度,最多255个字符
text:可变长度,最多65535个字符
BINARY(M)固定长度,可存二进制或字符,允许长度为0-M字节
 
内建类型:enum枚举,set集合
使用enum后,限定了数据可选的类型
#~~~~~~~~~~~~~~~~~~~~
数据库常用命令:
 
show databases;     查看数据库
 
use ***;     使用某个数据库,或者切换到某个数据库
 
show tables;显示当前所在的数据库中的表信息
 
desc ****;观看tables中某个表的结构
 
在mysql数据库中插入属性:
(1)insert 表名 (表中的属性,例如sid,name,sex) value(顺序对应个数的属性的值);     插入一条记录,并指定其属性对应的值(value)
(2)insert 指定表 value(02,'yang','f');     若属性本身就是按照顺序来的,可以省略前面的属性值
(3)insert 指定表(sid,name) value(02,'yang') 若某些属性不赋值,则可以根据其定义是否可以为NULL,来进行操作,若允许,则可以为空,否则必须要有
 
update 表名 set 表内属性1='value',表内属性2='value'  where name='指定对谁操作'
 
delete from 指定表名  where 属性名='value'     删除某个指定表中,指定的某一列
 
truncate table 指定表名     无法还原,清空指定表名的所有数据
 
select *(这个*代表所有数据) from students;     查看students中的所有数据
 
show table status like '指定表名'\G     查看指定表名的状态
 
create table 表名 (参数1,可变或不可变长度,参数2,可变或不可变长度,参数3,可变或不可变长度) 在当前库中新建一个表,并指定其应有的属性和对应的参数条件
 
select 属性1,属性2 from 表名 where 属性 = '指定属性';      显示表内指定属性为*的信息,(一个表中通常有很多信息,但是我们根据需求之查询某一些属性,但是他们得符合某些属
性要求,所以就是这种写法)
 
根据分组来进行数据统计:
GROUP:根据指定的条件把查询结果进行‘分组’以用于做”聚合“运算
select 指定属性,avg(要求平均值的属性) from 表名 group by 指定属性;     查看来自指定表名的指定属性的avg(平均值)
 
select * from 指定表 order by 指定属性;     将指定表的指定属性排序后显示(默认升序)     (若属性指定为空,则默认排在升序最前)
select * from 指定表 order by 指定属性 desc;     将指定表的指定属性倒序排序后显示          (若属性为空,倒序排序后在最末尾)
 
 
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SQL语句规范:
不区分大小写(建议大写);
字符串常量区分大小写;
SQL语句可单行或多行书写,以";"结尾
关键词不能跨多行或简写;
用空格和缩进来提高语句的可读性
子句通常位于独立行,便于编辑,提高可读性
注释:
/*注释内容*/ 多行注释
-- 注释内容     单行注释,之一空格
MYSQL注释:
#
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~
在数据库中输入help,可以查询可用的非sql语句的命令
 
#~~~~~~~~~~~~~~~~~~~~~~~~~~
数据库对象的命名规则:
同一database下,不能同名
首字母必须英文
可选三个特殊字符(#_$)
不要使用MYSQL的保留字
 
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
索引的设置:
create index 索引名 on 指定表 (指定索引作用的属性)
 
#~~~~~~~~~~~~~~~~~~~~~~~~~~~
笛卡尔乘积:
交叉连接:
用一张表中的某一个属性,去和另一张表中的属性进行匹配,匹配后生成一个新的表,表中记录着匹配项与被匹配的属性,m(可以为多):n(可以为多),但是m有几个,n匹配的就有几个
笛卡尔乘积的代码为: select * from 匹配项 cross join 被匹配项;
 
内连接: 取交集
代码 1: select 属性1,属性2 from 指定表名x , 指定表名y where 指定表名x.指定属性m=指定表名y.指定属性n;     显示出自己想要的属性,但是他的某一个属性必须和其他表中的某一个属性一致    
代码 2:select 属性1 ,属性2 from 指定表名x inner join 指定表名y on 指定表名x.指定属性m = 指定表名y.指定属性n ;        教新的写法,也是mysql推荐的写法
 
求左外连接:
select  属性1 ,属性2 from 指定表名x left outer join 指定表名y on 指定表名x.指定属性m = 指定表名y.指定属性n;    
 
求右外连接:
select  属性1 ,属性2 from 指定表名x right outer join 指定表名y on 指定表名x.指定属性m = 指定表名y.指定属性n;
 
多表联合:
select  属性1 ,属性2 from 指定表名x  union select 属性1 ,属性2 from 指定表名y;
 
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
设置同一网段的主机访问某个指定数据库:
 
grant 权限 on 指定表 to 目标帐号@'目标ip地址,可用%代替网段'  identified by '密码' ;
权限为: select ,delete ,update , all(所有权限)
 
目标主机访问代码为:
mysql -u服务器端分配的帐号 -p服务器端设置的密码 -h指定连接的mysql数据库ip地址
 
 
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Maria日志:
慢查询日志:slow query log
 记录 某些进程访问数据库的时间,若超过了设置的值,则记录
 
二进制日志:利用二进制日志对数据进行还原,将其重定向到需要还原的mysql数据库中即可
 
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Mysql复制:
实现读写分离:
读取数据 访问一个数据库
写入数据 访问另一个数据库
程序的主从分离需要设置:
设置流程为:
主库写,更新,删除 -->生成binary log(二进制日志) -->利用I/O thread 将此二进制日志写入一个relay log中,再由relay log启用SQL thread导出到从库中
根据日志来写入从库,主库的数据发生变化,从库的数据也跟着发生变化
 
start slave
启动I/O thread,SQL thread线程;

 


推荐阅读
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 本文介绍了在使用Laravel和sqlsrv连接到SQL Server 2016时,如何在插入查询中使用输出子句,并返回所需的值。同时讨论了使用CreatedOn字段返回最近创建的行的解决方法以及使用Eloquent模型创建后,值正确插入数据库但没有返回uniqueidentifier字段的问题。最后给出了一个示例代码。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • MySQL插入数据的四种方式及安全性分析
    本文介绍了MySQL插入数据的四种方式:插入完整的行、插入行的一部分、插入多行和插入查询结果,并对其安全性进行了分析。在插入行时,应注意字段的定义和赋值,以提高安全性。同时指出了使用insert语句的不安全性,应尽量避免使用。建议在表中定义相关字段,并根据定义的字段赋予相应的值,以增加插入操作的安全性。 ... [详细]
author-avatar
明卫国
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有