跳转到主要内容

mysql主从复制&&读写分离

主服务器配置

修改配置文件,编辑MySQL的配置文件(通常是/etc/my.cnf或/etc/mysql/my.cnf),重启MySQL服务,使配置生效。


# 启用二进制日志
log-bin=master-binlog

# 二进制日志格式
binlog-format=row

#设置服务器ID,确保每个服务器的ID唯一。
server-id=1

# 数据库名(可选):
# binlog-do-db=指定需要复制的数据库。

# 设置中继日志
relay-log=relay-bin

创建复制用户

创建复制用户:在主服务器上创建一个复制用户,并授权复制权限


CREATE USER 'replicator'@'%' IDENTIFIED BY 'password';  
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';  
FLUSH PRIVILEGES;

从服务器配置

修改配置文件,编辑从服务器的MySQL配置文件,设置完成后重启MySQL服务



# 确保服务器ID与主服务器不同
# 其他相关配置可根据需要设置
server-id=2

# 启用二进制日志
log-bin=master-binlog

# 二进制日志格式
binlog-format=row

# 设置中继日志
relay-log=relay-bin

# 设置从库为指读模式
# read-only=1

查看主服务二进制日志状态

在主服务器上执行以下命令,记录二进制日志文件名和位置,这些信息将用于从服务器的配置

SHOW MASTER STATUS;

配置从服务器的主复制配置信息

在从服务器上将执行,将配置复制指向主服务器

CHANGE MASTER TO  
MASTER_HOST='10.64.100.91',  
MASTER_USER='replicator',  
MASTER_PASSWORD='password',  
MASTER_LOG_FILE='binlog.000009',  
MASTER_LOG_POS=154;
# 启动复制
START SLAVE;

# 验证复制状态:
SHOW SLAVE STATUS\G;

# 主要是2个

Slave_I0 Running,YES
Slave SqL Rurning,YES