MySQL基础之二:主从复制
# mysql主从复制逻辑:
1.从库执行start slave 开启主从复制。
2.从库请求连接到主库,并且指定binlog文件以及位置后发出请求。
3.主库收到从库请求后,将信息返回给从库,除了信息日志外,还包含新的文件名称以及下一个更新节点。
4.从库接收到主库发送的信息后,会将信息更新至自身的relay log中,并且将新的文件名记录到master-info中。
5.从库SQL线程会检测本地relay-log,如有变化,会将信息解析为SQL可执行语句并且执行该语句,同时在relay-log.info中记录当前文件名以及位置点。
mysql 主从复制操作方法: # 主库:
1.保证bin-log的开启(可在mysql中利用 show variables where variable_name like 'bin%' 中查看,其中栏位值为ON则为开启,OFF则为关闭 bin-log具体逻辑取决于my.cnf设定值中的bin-log)
2.新建用户并且设定其为replication slave账户(grant replication slave on db_name.tb_name to 'user_name'@'host_name' identified by 'password';)
3.对主库锁表只读(flush table with read lock;)
4.收集master的信息,包括(replication slave username and password , master status filename and master status position(get master status: show master status ) )
5.导出主库数据,解锁(unlock tables;) # 从库:
1.将主库数据导入从库
2.将从库连接主库(change master to master_host='host_name',master_port='master_port',master_user='master_user',paster_password='master_password',master_log_file='master_status_log_file',master_log_pos='master_status_log_position');
3.开启主从复制,start slave; 查看从库状态是否OK(show slave status\G;)如果确定状态为NO时,则需要重新启动master和slave,再次检查状态是否OK
# 主库配置
vim /etc/my.cnf
##############################################
[mysqld]
datadir = /data/mysql
socket = /tmp/mysql.sock
basedir = /usr/local/mysql
user = mysql
port = 3306
server-id = 97
log-bin = mysql-bin
slow_query_log_file = /var/log/mysql/slow.log
slow_query_log = 1
symbolic-links = 0
log-error=/var/log/mysql/mysql_error.log
############################################## # 从库配置
vim /etc/my.cnf
##############################################
[mysqld]
datadir = /data/mysql
socket = /tmp/mysql.sock
basedir = /usr/local/mysql
user = mysql
port = 3306
server-id = 98
log-bin = mysql-bin
# slave开启只读权限
read_only = 1
# 打开中继日志
relay_log = /var/log/mysql-relay-bin
slow_query_log_file = /var/log/mysql/slow.log
slow_query_log = 1
symbolic-links = 0
log-error=/var/log/mysql/mysql_error.log
############################################## #在master授权远程登录方式
mysql > GRANT REPLICATION SLAVE ON *.* to 'root'@'%' identified by ' Password1!';
mysql > FLUSH PRIVILEGES; # 在slave上连接master
mysql > change master to master_host='172.50.1.97',master_user='root',master_password='Password1!',master_log_file='mysql-bin.000001',master_log_pos=687; # 在slave上开启slave功能
mysql > start slave; # 在slave上查询状态
mysql > show slave status;
MySQL基础之二:主从复制的更多相关文章
- MySQL基础(二)——DDL语句
MySQL基础(二)--DDL语句 1.什么是DDL语句,以及DDL语句的作用 DDL语句时操作数据库对象的语句,这些操作包括create.drop.alter(创建.删除.修改)数据库对象. 2.基 ...
- Linux系统——MySQL基础(二)
# MySQL数据库完全备份与恢复## 数据库备份的分类1. 从物理与逻辑的角度,备份可以分为物理备份和逻辑备份.(1)物理备份:对数据库操作系统的物理文件(数据文件.日志文件)的备份.物理备份又可分 ...
- Mysql基础(二)
学习路线:数据约束-> 数据库的设计过程-> 存储过程的相关知识-> 触发器-> 权限管理 (一)数据约束 1.1.默认值的设置 创建员工表emp 将默认地址设置为'中国'my ...
- MySQL基础(二):视图、触发器、函数、事务、存储过程
一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. 视图和上一篇学到的临时表搜索类似. ...
- Mysql基础(二):MySQL之存储引擎
目录 MySQL之存储引擎 1.MySQL存储引擎介绍 2.MySQL结构 3.MySQL存储引擎分类 4.存储引擎的使用 5.总结 MySQL之存储引擎 1.MySQL存储引擎介绍 MySQL中的数 ...
- MySQL基础(二)(约束以及修改数据表)
一,约束以及修改数据表 约束的作用?1.约束保证数据的完整性.一致性:2.约束分为表级约束.列级约束:3.约束类型包括:NOT NULL(非空约束).PRIMARY KEY(主键约束).UNIQUE ...
- mysql基础教程(二)-----分组函数、多表查询、常见函数
分组函数 什么是分组函数 分组函数作用于一组数据,并对一组数据返回一个值. 组函数类型 • AVG() • COUNT() • MAX() • MIN() • SUM() 组函数语法 AVG(平均值) ...
- mysql基础(二)—— 简单sql
查询 select * from company select c.code from company c; select m.bookname from myview m; (myview为视图) ...
- MySQL基础练习(二)
第一个例子我们编写一个 SQL 查询,列出所有超过或等于5名学生的课. 先建表 CREATE TABLE courses( student ) NOT NULL, class ) NOT NULL ) ...
随机推荐
- (十一)SpringBoot之文件上传以及
一.案例 1.1 配置application.properties #主配置文件,配置了这个会优先读取里面的属性覆盖主配置文件的属性 spring.profiles.active=dev server ...
- JAVA的转义字符
一.常见的转义字符 转移字符对应的英文是escape character , 转义字符串(Escape Sequence) 字母前面加上捺斜线"\"来表示常见的那些不能显示的AS ...
- Go part 3 指针,栈与堆
指针类型 要明白指针,需要知道几个概念:指针地址,指针类型 和 指针取值 取指针地址 每个变量在运行时都拥有一个地址,这个地址代表变量在内存中的位置,使用 & 放在变量前面进行“取指针地址”操 ...
- 如何在含有json类型的字段上建立多列索引
废话不多,直接上图 如 : 表结构如图 那么我想在这三个字段上建立一个唯一索引,目的是为了防止重复插入数据, 1.首先,说明一下 data中的json中,key为 tagID 和 ...
- Plugin 免费CSS生成器CssCollector
下载: 百度云 自己在做Web开发的时候,页面里会有很多样式类,一个个复制到样式表里总感觉很麻烦 网上也没有找到合适的工具,可以一键生成样式表 所以,干脆自己做一个咯~ 案例展示 花了一天时间,CSS ...
- JavaScript--常用对象的属性及方法(1)
1.Number对象(基本数据类型) Number对象的方法大多是一些强制转换方法,如果转换失败返回NaN,以下举例中用number来代替具体数字: *console.log在控制台输出(键盘F12可 ...
- hive 存储格式对比
Apache Hive支持Apache Hadoop中使用的几种熟悉的文件格式,如TextFile,RCFile,SequenceFile,AVRO,ORC和Parquet格式. Cloudera I ...
- 【Redis】事务 (超详细)
一.概述 二.相关命令列表 2.1 MULTI 2.2 EXEC 2.3 DISCARD 2.4 WATCH key [key ...] 2.5 UNWATCH 三.命令示例 3.1 事务被正常执行 ...
- Django drf:版本控制、django的缓存
一.版本控制 二.django的缓存 一.版本控制 1.内置版本控制类 from rest_framework.versioning import QueryParameterVersioning,A ...
- mysql 创建用户并授权数据库
create user test identified by ‘password’:password 你要创建的用户对应的密码 grant all on database.* to test; ...