IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Linux企业化运维(7)Mysql主从复制 GTID -> 正文阅读

[大数据]Linux企业化运维(7)Mysql主从复制 GTID

一、Mysql主从复制

将主数据库中的DDL和DML操作通过二进制日志传输到从数据库上,然后将这些日志重新执行(重做);从而使得从数据库的数据与主数据库保持一致

1、Mysql主从复制

###server1
scp -r /usr/local/mysql/ server2:/usr/local/
scp /etc/my.cnf server2:/etc/

###server2
cd /usr/local/mysql/support-files
cp mysql.server /etc/init.d/mysqld
cd
vim .bash_profile			##添加变量
///
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
///
source .bash_profile 
which mysql	##/usr/local/mysql/bin/mysql
useradd -M -d /data/mysql -s /sbin/nologin mysql
mkdir /data/mysql -p			##创建数据目录
chown mysql.mysql /data/mysql
mysqld --initialize --user=mysql	##初始化数据库,此时会有一个初始密码,如果失败说明/data/mysql/下有文件需要清空,在进行初始化!!!
/etc/init.d/mysqld start
mysql_secure_installation		##修改密码 
提示一
是否设置安全插件8位大小写的密码  NO

提示二
是否修改root密码    NO

提示三
安装一个匿名用户允许任何人登陆mysql数据库
是否删除匿名用户  YES

提示四
只允许localhost连接确保别人无法在网络中猜出密码
禁止root远程登陆  YES

提示五
mysql提供一个test的数据库任何人都可以访问仅用与测试
是否删除测试数据库 YES

提示六
重新加载特权表将确保到目前为止所做的所有更改将立即生效
是否重新加载特权表  YES

在这里插入图片描述

###server1
cd /etc/
vim my.cnf				##修改配置
///
[mysqld]
log-bin=mysql-bin	##表示启用binlog,log-bin
决定了msyql 的binlog的名字,?成的binlog名字为mysql-bin.000001
server_id=1
///
/etc/init.d/mysqld restart
cd /data/mysql/
ls ---> mysql-bin.000001 mysql-bin.index	##mysql-bin.000001数据库的二进制操作日志,每重启一次会生成新的;mysql-bin.index,二进制日志的索引文件,记录了所有的日志

mysql -p
> create user 'repl'@'%' identified by 'westos';	##添加授权用户
> grant replication slave on *.* to 'repl'@'%';		##授权

请添加图片描述

请添加图片描述

###server1
> show master status;

###server2
vim /etc/my.cnf
///
[mysqld]
server_id=2
///
/etc/init.d/mysqld restart
主从复制之前,主从主机数据一定要同步,
mysql -p
> set global server_id=2;
> show variables like 'server_id';

###server1
> show variables like 'server_id';
> show databases;
> exit
cd /data/mysql		##此时因为主从库数据不同步,所以需要将主库数据备份并传给从库
mysqlbinlog mysql-bin.000001		##查看日志
mysqldump -p westos > dump.sql		##备份数据
scp dump.sql server2:    ##scp到~路径

###server2
cd
mysqladmin -p create westos		##以管理员身份建库,因为dump.sql没有建库,所以需要自己建库
mysql -p westos < dump.sql		##备份导入
mysql -pwestos
> change master to master_host='172.25.77.1', master_user='repl', master_password='westos', master_log_file='mysql-bin.000002', master_log_pos=696(根据自己在server1查到的数字);	##slave从某台主机的某个日志,某个位置开始同步
> show slave status\G;
> select * from linux;  ##查看liunx数据



请添加图片描述

请添加图片描述

二、GTID

GTID即全局事务ID (global transaction identifier), 其保证为每一个在主上提交的事务在复制集群中可以生成一个唯一的ID。mysql主从结构在一主一从情况下对于GTID来说就没有优势了,而对于2台主以上的结构优势异常明显,可以在数据不丢失的情况下切换新主。

###server1
vim /etc/my.cnf
///
enforce-gtid-consistency=OFF
///
/etc/init.d/mysqld restart

###server2
vim /etc/my.cnf
///
gtid_mode=ON
enforce-gtid-consistency=OFF
///
/etc/init.d/mysqld restart
mysql -p 
> stop slave;
> change master to master_host='172.25.24.1', master_user='repl', master_password='westos', master_auto_position = 1;
> start slave;
> show slave status\G;		##Slave_IO_Running: Yes Slave_SQL_Running: Yes

###server1
mysql -pwestos
> use westos
> insert into linux values ('user4','444');
> select * from linux;

###server2
> show databases;
> use mysql
> select * from liunx;
> exit


###server1
scp -r /usr/local/mysql/ server3:/usr/local/
scp /etc/my.cnf server3:/etc/
scp /etc/init.d/mysqld server3:/etc/init.d/

###server3
vim /etc/my.cnf
///
server-id=3
gtid_mode=ON
enforce-gtid-consistency=ON
///
useradd -M -d /data/mysql -s /sbin/nologin mysql
vim .bash_profile			##添加变量
///
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
///
source .bash_profile 
mkdir /data/mysql -p			##创建数据目录
chown mysql.mysql /data/mysql
mysqld --initialize --user=mysql	##初始化数据库,此时会有一个初始密码,先记住
/etc/init.d/mysqld start
mysql_secure_installation		##修改密码

###server2 
vim /etc/my.cnf
///
log-bin=mysql-bin
server-id=2
log_slave_updates=ON
gtid_mode=ON
enforce-gtid-consistency=ON
///
/etc/init.d/mysqld restart
mysql -pwestos
> show slave status\G; ##查看IO  SQL 是否是yes

> grant replication slave on *.* to repl@'%' identified by 'westos';

###server1
mysqldump -p westos > dump.sql		##备份
scp dump.sql server3:

###server3
mysqladmin -p create westos		##以管理员权限建表
mysql -p westos < dump.sql
mysql -pwestos
> use westos
> show tables;
> select * from linux;
> change master to master_host='172.25.77.2', master_user='repl', master_password='westos', master_auto_position = 1;   ##3去复制server2
> start slave;
> show slave status\G;	##slave_io_running:yes	slave_sql_running:yes

###server1
> use westos
> insert into linux values ('user6','666');

###server3
> select * from linux;

###server2
mysqlbinlog server2-relay-bin.index
mysqlbinlog mysql-bin.000001 -v
mysql -pwestos
> show slave status\G; ##查看IO  SQL 是否是yes

###server3
> show slave status\G;		##查看IO  SQL 是否是yes


请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-12 13:14:07  更:2021-09-12 13:14:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 19:40:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码