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