首页 > 数据库 >MySQL基于gtid同步,新增slave节点

MySQL基于gtid同步,新增slave节点

时间:2024-10-22 16:34:11浏览次数:1  
标签:slave master user MySQL root 节点 gtid localhost

环境说明:当前MySQL集群为一主一从, 新增加 Slave 节点,将架构变更为一主两从,集群已经运行了很长时间,主节点得binlog早就被purged,启动slave得时候会报错,1236、1062等

操作步骤:备份master数据,从节点reset master,导入数据

1.备份主节点数据:在进行任何操作之前,首先需要对主节点的数据进行备份,以确保数据的安全性。这可以通过使用mysqldump工具或其他备份方法来完成。

2.从节点重置:在新增的Slave节点上执行reset master命令,这将清除该节点上现有的复制信息,包括已经purged的binlog日志。这一步是必要的,因为旧的复制信息可能导致复制过程中的错误。

3.导入数据:将备份的数据导入到新增的Slave节点中。这一步骤确保Slave节点拥有主节点的完整数据副本。

master确认用户信息:

master> select user,host,plugin from mysql.user;

master> show grants for 'root'@'localhost';

备份master数据

mysqldump -uroot -p --all-databases --single-transaction --triggers --routines --events >full.sql

 

新增slave节点操作:

slave> stop slave;

slave> reset master;

slave> reset slave;

slave> source full.sql;

配置change master

slave> change master to master_host='主节点IP',master_port=3306,master_user='repl',master_password='密码',master_auto_position=1;

启动slave

slave> start slave;

slave> show slave status\G;

 

主从数据同步测试:

1.主节点随便创建一个数据库,查看从节点是否同步

master> create database test111;

从节点查看:

slave> show databases;

2.账号密码登录验证:

在从库节点上使用master的账号密码登录

使用原先slave节点root账号密码登录成功

slave> alter user root@'%' identified by '密码';

slave> flush privileges;

退出重新使用新密码登录OK

 

过程遇到得问题处理:

1.主库执行alter user后从库报错1396

master> alter user sys@'%' identified by '密码';

从节点查看主从同步情况:

slave> show slave status\G;

1396报错处理:

slave> select * from performance_schema.replication_applier_status_by_worker where LAST_ERROR_NUMBER=1396\G;
*************************** 1. row ***************************
         CHANNEL_NAME:
            WORKER_ID: 1
            THREAD_ID: NULL
        SERVICE_STATE: OFF
LAST_SEEN_TRANSACTION: f94464fc-3e89-11ef-bb05-fa163e40e770:10092821
    LAST_ERROR_NUMBER: 1396
   LAST_ERROR_MESSAGE: Worker 1 failed executing transaction 'f94464fc-3e89-11ef-bb05-fa163e40e770:10092821' at master log mysql-bin.000031, end_log_pos 358006489; Error 'Operation ALTER USER failed for 'sys'@'%'' on query. Default database: ''. Query: 'ALTER USER 'sys'@'%' IDENTIFIED WITH 'mysql_native_password' AS '*83B9BAAFABA1C2C8E47E266271D05FFB8F30CEF8''
 LAST_ERROR_TIMESTAMP: 2024-10-21 17:11:49
1 row in set (0.00 sec)

ERROR:
No query specified

 

 

slave> stop slave

slave> set @@session.gtid_next='f94464fc-3e89-11ef-bb05-fa163e40e770:10092821';

slave> begin;

Query OK, 0 rows affected (0.00 sec)

slave> commit;

Query OK, 0 rows affected (0.00 sec)

slave> set @@session.gtid_next=automatic;

Query OK, 0 rows affected (0.00 sec)

slave> start slave;

Query OK, 0 rows affected (0.22 sec)

 

重新查看slave同步状态恢复正常

slave> show slave status\G;

 

主库删除sys用户重新创建

master> drop user sys@'%';

master> create user 'sys'@'%' identified by '密码';

slave重新登录提示成功

2. grant授权得时候1045错误(之前得root@localhost用户被删除了,重新创建了一个root@localhost用户并授权)

检查MySQL服务器上各个用户的权限设置

select user,host,Grant_priv,Super_priv from mysql.user;

Grant_priv列用于指示用户是否具有授权权限

update mysql.user set Grant_priv='Y' where User='root';

查看root@localhost用户权限

show grants for root@localhost;

授权root@localhost用户权限

grant all on *.* to 'root'@'localhost';

查询root@localhost用户的权限和配置

select * from mysql.user where user='root' and host='localhost'\G;

当前登录用户为'root'@'%',修改'root'@'%'用户密码再授权

alter user 'root'@'%' identified by '密码';

flush privileges;

退出重新登录'root'@'%'用户为root@localhost用户授权成功

标签:slave,master,user,MySQL,root,节点,gtid,localhost
From: https://www.cnblogs.com/goujinyang/p/18493219

相关文章

  • mysql建议单表2000万条数据的由来
    Mysql在建表之初就要考虑到他的存储量和性能问题,所以一般Mysql数据库建议单表最大两千万,但是为啥是两千万呢这里我们解释一下,知其然还要知其所以然!这一块的知识解释起来会涉及一点存储引型的相关知识了这里给提供一个基本概念,但是了解完之后会对InnonDB引型会有一定的了解数据......
  • 保姆级 | MySQL的安装配置教程(非常详细)
    一、下载Mysql从官网下载MySQL,这里我选用的是Mysql8.0.34版本   二、安装Mysql下载完成后直接双击进行安装,打开后的页面如下所示:“DeveloperDefault”是开发者默认“Serveronly”仅作为服务器安装“Clientonly”仅作为客户端安装“Full”是完整安装“Custom”......
  • 用MySQL5.7的客户端连接MySQL8.0的服务端竟然报错,不是说好向下兼容吗?
    在默认条件下,用MySQL5.7的客户端连接MySQL8.0的服务端竟然报错,不是说好向下兼容吗?WHAT?报错如下:[root@node234~]#mysql-ushukuinfo-p'123456'-h172.16.1.223mysql:[Warning]Usingapasswordonthecommandlineinterfacecanbeinsecure.ERROR2026(HY000):SSLconn......
  • mysql innodb_data_file_path参数忘记设置或者重新调整办法
    目录mysqlinnodb_data_file_path参数忘记设置或者重新调整办法mysqlinnodb_data_file_path参数忘记设置或者重新调整办法my.cnf文件中,默认配置为innodb_data_file_path=ibdata1:10M:autoextend目前该文件已经扩大到了1g多:-rw-r-----1mysqlmysql14701035524月161......
  • MySQL和Elasticsearch使用场景
    来源:https://www.zhihu.com/question/637732937ES的底层实现:倒排索引正排索引(ForwardIndex)的实现方式为,通过文档ID去查找整个文档内容,适用于全部文档遍历或根据某个文档ID查找内容的场景。而倒排索引(InvertedIndex)的实现方式,则是通过文档中的关键词去查找文档ID列表,这也就是其非......
  • Linux安装mysql
    LINUX安装MYSQL详细教程(两种安装方法) 参考:https://www.cnblogs.com/csjoz/p/18178796Linux之Mysql安装配置第一种:Linux离线安装Mysql(提前手动下载好tar.gz包)第二种:通过yum安装配置Mysql(服务器有网络)第一种:tar.gz包安装1、查看是否已经安装Mysqlrpm-qa|grepmysql如果......
  • Linux卸载mysql
     (一)linux卸载mysql要在Linux系统中卸载MySQL,可以使用包管理器。以下是基于不同Linux发行版的卸载命令示例:对于基于Debian的系统(如Ubuntu),使用以下命令:sudoapt-getremove--purgemysql-servermysql-clientmysql-commonsudoapt-getautoremovesudoapt-getautoclean对于......
  • 基于Java+Jsp+Ssm+Mysql实现的零食商城系统功能设计与实现一
    一、前言介绍:1.1项目摘要随着电子商务的快速发展和消费者购物习惯的改变,线上购物已成为人们日常生活中不可或缺的一部分。零食作为日常生活中常见的消费品,其线上销售市场也呈现出快速增长的趋势。零食商城系统的设计与实现,旨在满足消费者对零食的多样化、个性化需求,提供......
  • 基于Java+Jsp+Ssm+Mysql实现的零食商城系统功能设计与实现二
    一、前言介绍:1.1项目摘要随着电子商务的快速发展和消费者购物习惯的改变,线上购物已成为人们日常生活中不可或缺的一部分。零食作为日常生活中常见的消费品,其线上销售市场也呈现出快速增长的趋势。零食商城系统的设计与实现,旨在满足消费者对零食的多样化、个性化需求,提供......
  • redis mysql nginx的docker-compose
    redismysqlnginx的docker-composeversion:'3'services:nginx:image:docker.m.daocloud.io/nginx:latestcontainer_name:nginxrestart:unless-stoppedenvironment:TZ:Asia/ShanghaiLANG:en_US.UTF-8volumes:#......