当前位置: 首页 > article >正文

mysql数据库设置主从同步

mysql数据库设置主从同步

环境

mysql主库版本MySQL-5.6.40-2.sles12.x86_64
mysql从库版本mysql-5.7.21-linux-glibc2.12-x86_64

一、主库配置

修改主库my.cnf配置

[mysqld]
#server_id = 1                #唯一标识,主库从库不能重复
#log_bin = mysql-bin          #开启日志
#binlog_format=MIXED         #日志记录的格式
#max_binlog_size = 512M     #单个日志文件最大
#expire_logs_day = 3          #日志有效期(天)
#binlog_do_db = test1,test2    #日志记录那些数据库
#binlog_ignore_db = mysql,performance_schema,information_schema #日志记录忽略那些数据库的

#id要唯一 
server-id = 1
#开启binlog日志 
log-bin = mysql-bin
#在Ubuntu系统中MySQL5.5以后已经默认是1 
auto-increment-increment = 1
auto-increment-offset = 1
#跳过主从复制出现的错误
slave-skip-errors = all
#日志记录的格式
binlog_format = MIXED
#单个日志文件最大
max_binlog_size = 512M
#日志有效期(天)
expire_logs_day = 7

主库创建同步用户

grant all on *.* to 'sync'@'192.168.175.%' identified by 'sync';

重启服务

service mysql restart

二、从库配置

修改从库my.cnf配置

[mysqld]
#这个设置2 
server-id = 2
#开启binlog日志 
log-bin = mysql-bin
#这两个参数在Ubuntu系统中MySQL5.5以后都已经默认是1 
auto-increment-increment = 1
auto-increment-offset = 1
#跳过主从复制出现的错误
slave-skip-errors = all

重启服务

service mysql restart

三、存量数据迁移

备份主库

#导出明细
mysqldump -uroot -p111 --routines --single_transaction --master-data=2 --databases MyTest > MyTest.sql

#传文件
scp mysql.sql root@192.168.175.133:/home/mysql.sql

参数说明:
–routines:导出存储过程和函数
–single_transaction:导出开始时设置事务隔离状态,并使用一致性快照开始事务,然后unlock tables;而lock-tables是锁住一张表不能写操作,直到dump完毕。
–master-data:默认等于1,将dump起始(change master to)binlog点和pos值写到结果中,等于2是将change master to写到结果中并注释。

将备份的数据拷贝到从库之后导入数据

mysql -uroot -p123 -e 'create database mysql;' 
mysql -uroot -p123 mysql < mysql.sql

在备份sql中看binlog和pos值

head -25 mysql.sql 
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=120;   #大概22行

从库设置从这个日志点同步,并启动

mysql> change master to master_host='192.168.175.132', 
  -> master_user='sync', 
  -> master_password='sync', 
  -> master_log_file='mysql-bin.000002', 
  -> master_log_pos=120; 
mysql> start slave; 
mysql> show slave status\G;
ERROR 2006 (HY000): MySQL server has gone away 
No connection. Trying to reconnect... 
Connection id:  90 
Current database: *** NONE *** 
*************************** 1. row *************************** 
        Slave_IO_State: Waiting for master to send event 
         Master_Host: 192.168.175.132
         Master_User: sync 
         Master_Port: 3306 
        Connect_Retry: 60 
       Master_Log_File: mysql-bin.000002 
     Read_Master_Log_Pos: 358 
        Relay_Log_File: mysqld-relay-bin.000003 
        Relay_Log_Pos: 504 
    Relay_Master_Log_File: mysql-bin.000001 
       Slave_IO_Running: Yes 
      Slave_SQL_Running: Yes 

看到IO和SQL线程均为YES,说明主从配置成功。

如有my.cnf权限问题可进行授权进行修复

chmod 644 /etc/my.cnf

http://www.kler.cn/a/323529.html

相关文章:

  • 蓝桥杯每日真题 - 第14天
  • CSP-X2024山东小学组T2:消灭怪兽
  • npm list -g --depth=0(用来列出全局安装的所有 npm 软件包而不显示它们的依赖项)
  • MFC程序崩溃时生成dmp文件
  • Go语言的零值可用性:优势与限制
  • Exploring Defeasible Reasoning in Large Language Models: A Chain-of-Thought A
  • 自动驾驶电车难题的康德式道德决策
  • 黑马头条day6-kafka及异步通知文章上下架
  • Spring 全家桶使用教程 —— 后端开发从入门到精通
  • C#——switch案例讲解
  • 计算机毕业设计 校园失物招领网站的设计与实现 Java实战项目 附源码+文档+视频讲解
  • 58 深层循环神经网络_by《李沐:动手学深度学习v2》pytorch版
  • 【论文写作】描述一个模型比另一个模型效果好时
  • sentinel原理源码分析系列(二)-动态规则和transport
  • 如何在openEuler上安装和配置openGauss数据库
  • linux编辑文件保存退出的实操讲解
  • JVM基本了解
  • 神经网络激活函数
  • RabbitMQ 高级特性——重试机制
  • 【前端面试题】Vue 3 生命周期钩子的执行顺序详解
  • 2024年中国电子学会青少年软件编程(Python)等级考试(二级)核心考点速查卡
  • Supervisor进程管理工具安装
  • Python爬虫获取指定内容
  • django drf 统一处理操作人和时间字段
  • leetcode-238. 除自身以外数组的乘积-前n项的思想
  • 一键降重:芝士AI如何简化论文查重过程?