Mysql 视图,事务,索引,以及 Mysql 主从服务器配置 笔记简述

Mysql 视图,事务,索引,以及 Mysql 主从服务器配置 笔记简述

这是今天的成果——对Mysql高级语法的学习:

这里,只插入一些图片和一些简单描述,图片中的过程就是整个操作流程,已经很详细了。其他的,当作笔记整理——一些重要的概念:

【1】视图:

什么是视图?

我的理解:通俗的讲,视图就是 一条复杂的select查询语句执行后返回的结果集,它是一张虚拟的表,不会因为原来表结构的改变而改变,但是可以和原表数据保持同步。

视图的作用是什么?

1.提高了重用性,就像一个函数,随时可以调用
2.当对源数据库重构时,不影响引用视图的程序的运行
3.提高了安全性。因为通过这张 视图表,不能修改 源表中的数据
4.让数据更加清晰

【2】事务Mysql 视图,事务,索引,以及 Mysql 主从服务器配置 笔记简述_第1张图片

什么是事务?

所谓的事务,其实是一个操作序列,这些操作 要么多执行完成,要么都不执行,是一个不可分割的工作单位。通俗的理解就是——这就像 一群员工共同完成一件事,只要其中有一个人不干了,其他人也一起跟着不干了,只有当这群员工齐心协力没有一个人放弃的时候,才能完成任务。

事务的四大特性(简称 ACID):

【1】原子性:保证了数据的修改要么成功,要么不成功,不成功就返回数据原来状态。
【2】一致性:保证了数据在修改完成后没有commit提交前,此时当服务器崩了的时候可以保证数据不被损坏,和前一次状态一致。
【3】隔离性:保证了 这个sql语句的执行不会影响另外一个sql语句的执行。(就像你和别人同时登陆同一个数据库,修改同一个数据的时候,那个人先操作unsigned 10这个数,先减去了10,然后还没有提交,你这个时候也要对这个数据进行操作,当你update 写完这个sql语句回车以后,你会默认堵塞,一直等,要么超时操作不了,要么那个人把修改操作提交以后,你解堵塞,此时会报错,因为10这个数已经被那个人减去了,你再减去10就成负数了)
【4】持久性:永久性存储(这里说的就是,数据操作并提交之后,会永久存储到硬盘上)

【3】索引Mysql 视图,事务,索引,以及 Mysql 主从服务器配置 笔记简述_第2张图片

没什么好说的,索引,为了提高查询效率,但是不一定索引多了效率就高。
因为索引的建立是需要特殊的数据结构和表中的数据相关联,每一次数据的修改都需要改动索引的结构,当你的数据库 修改操作频繁的时候,性能会大幅下降。

【4】Mysql 主从服务器配置

这里要说的就是:
我的电脑配置太低,带不动两个虚拟机,模拟不了两个服务器同步的状态。
本来打算在物理主机上装一个 Mysql,但是由于系统的原因,装不上。
所以,下面大部分的图,都是在一个 ubantu 上操作的,包括 主服务器 和 从服务器的操作都是在 同一个 ubantu 系统上演示的,但是流程及操作步骤,完全正确!!!

(1)导出数据库里面的所有信息,并将文件复制到 从服务器上:

(2)配置主服务器:Mysql 视图,事务,索引,以及 Mysql 主从服务器配置 笔记简述_第3张图片

这里需要说明的就是:
打开sudo vim /etc/mysql/mysql.conf.d/mysql.cnf
然后看图上白色标记的两行代码,确认前面没有 # 注释。
然后 sudo service mysql restart重启服务

(3)配置 从服务器:

这里需要说明的就是:
打开sudo vim /etc/mysql/mysql.conf.d/mysql.cnf
然后看图上白色标记这行代码,后面的 server-id=2,这里的 2 必须和主服务器这个地方的数值不一样,然后 sudo service mysql restart重启服务

(4)在主服务器上创建一个用户,给予相应权限,让从服务器用这个账户登陆数据库:Mysql 视图,事务,索引,以及 Mysql 主从服务器配置 笔记简述_第4张图片

(5)查看主服务器状态,设置从服务器 同步主服务器:Mysql 视图,事务,索引,以及 Mysql 主从服务器配置 笔记简述_第5张图片

这里,通过这条命令 查看主服务器的状态信息。记住这里的 000005154

Mysql 视图,事务,索引,以及 Mysql 主从服务器配置 笔记简述_第6张图片

这里,是从服务器上要写的,这里的 000005154是上面查看的主服务器的。

(6)验证同步:Mysql 视图,事务,索引,以及 Mysql 主从服务器配置 笔记简述_第7张图片

这里,登陆 数据库,在从服务器上输入上面的命令,回车之后会出现一大坨数据,在这些数据里面,只要找到了 Slave_IO_Running:YesSlave_SQL_Running:Yes ,就说明同步成功。

如果同步没有成功:

(1)解决方法:
sudo vim /etc/mysql/mysql.conf.d/mysql.cnf
看看这里(图上白色标记的地方),有没有加 # 注释掉
(2)解决办法
重新做一遍这个流程((5)查看主服务器状态,设置从服务器 同步主服务器:)
很可能是因为 查看主服务器状态的时候,参数记错了,导致往 从服务器上写同步命令的时候出错。

你可能感兴趣的:(笔记)