首页 > 数据库 >MySQL MGR集群部署运维常用脚本

MySQL MGR集群部署运维常用脚本

时间:2023-09-04 15:00:12浏览次数:48  
标签:group 运维 replication MySQL MGR MASTER user mysql 集群

Linux系统-部署-运维系列导航

 

安装、初始化操作汇总

注意:Pass.Test.123替换为真实的root账号密码,Repl.pass.123替换为真实的mgr集群创建时 group_replication_recovery 通道的密码   #初始化、重置mysql
rm -rf /data/mysql/ ; mkdir -p /data/mysql/data /data/mysql/log ; chown -R mysql:mysql /data/mysql/ ; chmod -R 755 /data/mysql/ ;

 

#重置mysql后第一次启动,需要更改密码,而启动复制插件即加入集群为slave状态,只读,无法执行更改密码
vim /etc/my.cnf 
loose-group_replication_start_on_boot = OFF
service mysqld start

 

#mysql 临时密码
#获取临时密码
grep 'temporary password' /data/mysql/log/mysqld.log 

#临时密码登录 
mysql -uroot -p

 

#第一次安装启动,必须修改默认密码(第一条更新操作必须是ALTER USER),先关掉binlog,避免其他节点同步时异常
SET SQL_LOG_BIN=0;ALTER USER 'root'@'localhost' IDENTIFIED BY 'Pass.Test.123';flush privileges;SET SQL_LOG_BIN=1;

 

#集群第一台执行:开放root账号远程登录
use mysql;update user set host='%' where user='root';flush privileges;

 

#集群第一台执行:创建mgr集群同步账户
grant replication slave on . to 'repl_user'@'%' identified by 'Repl.pass.123';flush privileges; use mysql;select user,host from user;

 

#集群第一台执行:初始化创建mgr集群,在【第一次安装】或【全部节点离线后第一次启动】时执行
stop group_replication;
set global group_replication_bootstrap_group=on;
CHANGE MASTER TO MASTER_USER='repl_user', MASTER_PASSWORD='Repl.pass.123' FOR CHANNEL 'group_replication_recovery';
start group_replication;
set global group_replication_bootstrap_group=off;

 

#集群第一台执行:测试数据
create database mgr_test default character set utf8;
use mgr_test;

create table person (id int(10) primary key auto_increment not null,name varchar(20),age int(10)) ENGINE=InnoDB DEFAULT CHARSET=utf8;insert into person(id,name,age) values(1,'zhangsan',21);
insert into person(id,name,age) values(2,'lisi',23);
select * from person;

create table person2 (id int(10) primary key auto_increment not null,name varchar(20),age int(10)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into person2(id,name,age) values(1,'zhangsan',21);
insert into person2(id,name,age) values(2,'lisi',22);
select * from person2;

 

#集群第二台开始执行:加入集群
stop group_replication;CHANGE MASTER TO MASTER_USER='repl_user', MASTER_PASSWORD='Repl.pass.123' FOR CHANNEL 'group_replication_recovery';start group_replication;

 

#查询集群节点
select * from performance_schema.replication_group_members ;

 

#查询master节点
select * from performance_schema.global_status where variable_name like '%group%';

 

#设置复制插件自动启动
vim /etc/my.cnf 
loose-group_replication_start_on_boot = ON
service mysqld restart

 

所有节点离线重启后运维操作

注意:Pass.Test.123替换为真实的root账号密码,Repl.pass.123替换为真实的mgr集群创建时 group_replication_recovery 通道的密码   #第一个节点创建集群,设置master
mysql -uroot -pPass.Test.123 \
-e "stop group_replication;\
set global group_replication_bootstrap_group=on;\
CHANGE MASTER TO MASTER_USER='repl_user', MASTER_PASSWORD='Repl.pass.123' FOR CHANNEL 'group_replication_recovery';\
start group_replication;\
set global group_replication_bootstrap_group=off;"

 

#其他节点加入集群
mysql -uroot -pPass.Test.123 \
-e "stop group_replication;\
CHANGE MASTER TO MASTER_USER='repl_user', MASTER_PASSWORD='Repl.pass.123' FOR CHANNEL 'group_replication_recovery';\
start group_replication;"

 

#查询主节点
mysql -uroot -pPass.Test.123 \
-e "SELECT * FROM performance_schema.replication_group_members WHERE MEMBER_ID = (\
SELECT VARIABLE_VALUE FROM performance_schema.global_status WHERE VARIABLE_NAME= 'group_replication_primary_member')" \
| awk 'NR==2{print($3)}'

 

#查询所有节点
mysql -uroot -pPass.Test.123 -e "select * from performance_schema.replication_group_members;"

 

 

标签:group,运维,replication,MySQL,MGR,MASTER,user,mysql,集群
From: https://www.cnblogs.com/xiaoyaozhe/p/17671337.html

相关文章

  • MySQL联表查询优化
    Linux系统-部署-运维系列导航  sql执行顺序执行FROM语句执行ON过滤join添加外部行执行where条件过滤执行groupby以及分组语句,(开始使用select中的别名,后面的语句中都可以使用别名)执行havingselect列表执行distinct去重复数据执行orderby字句执行limit字句 ......
  • MybatisPlus处理Mysql的json类型
    MybatisPlus处理Mysql的json类型1、在数据库表定义JSON字段;2、在实体类加上@TableName(autoResultMap=true)、在JSON字段映射的属性加上@TableField(typeHandler=JacksonTypeHandler.class);1.实体类中有个属性是其他对象,或者是List;在数据库中存储时使用的是mysql的json格式,此......
  • mysql到达梦存储过程常见问题
    1.1 变量的使用createorreplaceproceduree_test()asbegin setstrsql='selectidinto@eidfromtest2orderbyidlimit1,10'; insertintotestselectid,namefromtest2whereidin(eid); setstst=strsql; executestst;end;变量需要提前定义cre......
  • KVM管理工具Webvirtmgr 问题记录
    1.如果遇到虚拟机启动时报错:qemu-kvm:FailedtostartVNCserveron`172.17.42.1:0':Failedtobindsocket:Cannotassignrequestedaddres请将对应虚拟机XML配置中VNC部分改为:<graphicstype='vnc'port='-1'autoport='yes'listen='0.0.0.......
  • MySQL忘记root密码解决方案
    Linux系统-部署-运维系列导航 场景一:重置root密码mysql登录密码为password()算法加密,解密成本太高,以下为通用方案;原理:mysql提供了特殊启动方式,即跳过权限表验证,启动后,登录不需要提供密码;登录后,即可修改mysql数据库的user表,重置密码,然后刷新权限,重启mysql服务即可;注意:此时my......
  • docker桌面端安装mysql
    参考 https://www.yzktw.com.cn/post/735256.html1,搜索Images,mysql,选择合适的版本pull2,Images,中点击三角箭头,run,会弹出新建Containers弹框Containersname,随便写Ports需要写0Volumes选安装地址EnvironmentVarialbes需要加上密码MYSQL_ROOT_PASSWORD: 123456 3,运行......
  • keepalived实现MySQL MGR高可用(keepalived 2.2.7 + mysql 5.7.35)
    Linux系统-部署-运维系列导航 一、架构介绍MySQLMGR实现了MySQL服务的高可用、高扩展、高可靠,但在客户端只能同时连接一台服务实例,在master切换后,客户端无法感知并自动切换,所以需要搭配keepalived实现MySQLMGR集群在客户端的高可用。 二、架构搭建架构设计MySQLMGR一......
  • SpringBoot--运维实用
    SpringBoot运维实用篇打包与运行windows打包在maven中双击package打包另外如果打包报utf-8的错,在pom中添加<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>2.6</version>&l......
  • Linux 服务器下C++开发找不到mysql.h
    问题背景腾讯云服务器,linuxcentOS7内核,mysql版本5.5为宝塔腾讯云版自动安装C++用cmake编译时找不到mysql.h解决1.首先尝试yum安装mysql-devel包,但是yum让我直接下载了mariadb相关的包,下载时它,与原有包冲突bt-mysql55-5.5.62-1.el7.x86_64,但是删除原有包后mysql启动有问......
  • 浅谈Mysql读写分离的坑以及应对的方案 | 京东云技术团队
    一、主从架构为什么我们要进行读写分离?个人觉得还是业务发展到一定的规模,驱动技术架构的改革,读写分离可以减轻单台服务器的压力,将读请求和写请求分流到不同的服务器,分摊单台服务的负载,提高可用性,提高读请求的性能。上面这个图是一个基础的Mysql的主从架构,1主1备3从。这种架构是客户......