mysql 主从配置

mysql 主从配置

主机

cat /etc/my.cnf

mysqld

1. 唯一标识(主库必须设为1,从库不能重复)

server-id = 1

2. 开启二进制日志(主从复制核心,记录所有数据变更)

log-bin = mysql-bin

3. binlog格式(推荐ROW,精准复制行级变更)

binlog_format = ROW

4. 同步时忽略mysql系统库(可选,减少binlog体积)

binlog-ignore-db = mysql

5. 基础配置(确保正常运行)

datadir = /var/lib/mysql

socket = /var/lib/mysql/mysql.sock

user = mysql

mysqld_safe

log-error = /var/log/mysqld.log

pid-file = /var/lib/mysql/19c01.pid

client

socket = /var/lib/mysql/mysql.sock

从机

mysqld

1. 唯一标识(必须≠主库的1,设为2)

server-id = 2

2. 开启中继日志(从库复制核心,接收主库binlog)

relay-log = mysql-relay-bin

3. 禁用从库的binlog(从库仅同步,不生成自己的binlog,可选)

log-bin = OFF

4. 从库只读(防止误写入,super权限用户仍可写)

read_only = 1

5. 基础配置

datadir = /var/lib/mysql

socket = /var/lib/mysql/mysql.sock

user = mysql

mysqld_safe

log-error = /var/log/mysqld.log

pid-file = /var/lib/mysql/19c02.pid

client

socket = /var/lib/mysql/mysql.sock

登录主机:

创建复制用户(允许从库19c02访问,替换为19c02的IP)

CREATE USER 'repl'@'192.168.158.132' IDENTIFIED BY 'root';

授予复制权限(仅允许复制,无其他权限)

GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.158.132';

刷新权限

FLUSH PRIVILEGES;

查看主库状态(关键!记录File和Position值,决定下面MASTER_LOG_POS的值; )

SHOW MASTER STATUS;

登录从机

停止原有复制(首次配置可忽略,防止报错)

STOP SLAVE;

配置主库连接信息(替换<>内的内容)

CHANGE MASTER TO

MASTER_HOST='192.168.158.131',

MASTER_USER='repl',

MASTER_PASSWORD='root',

MASTER_LOG_FILE='mysql-bin.000001',

MASTER_LOG_POS=660;

启动从库复制进程

START SLAVE;

查看从库复制状态(核心!验证同步是否正常)

SHOW SLAVE STATUS\G;

相关推荐
jiayou641 天前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
李广坤2 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
爱可生开源社区3 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1773 天前
《从零搭建NestJS项目》
数据库·typescript
加号34 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏4 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
李慕婉学姐4 天前
Springboot智慧社区系统设计与开发6n99s526(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
百锦再4 天前
Django实现接口token检测的实现方案
数据库·python·django·sqlite·flask·fastapi·pip
tryCbest4 天前
数据库SQL学习
数据库·sql
jnrjian4 天前
ORA-01017 查找机器名 用户名 以及library cache lock 参数含义
数据库·oracle