mysql主从配置
1. 主服务器配置
[mysqld]
# 设置服务器ID,用于标识主服务器
server-id=1
# 开启 binlog 日志
log-bin=mysql-bin
# 配置允许复制的数据库
binlog-do-db=<需要复制的数据库名>
# 设置 binlog 日志的格式
binlog-format=mixed
# 设置监听地址,用于从服务器连接
bind-address=主服务器IP地址
# 设置 InnoDB 缓冲池大小,根据可用内存和数据库大小进行调整
innodb_buffer_pool_size=2G
# 设置 InnoDB 重做日志文件大小,根据写入负载进行调整
innodb_log_file_size=256M
# 设置 InnoDB 事务提交时刷新日志的策略,可以设置为 0、1 或 2
# 设置为 0 或 2 可以提高性能,但可能导致数据丢失
innodb_flush_log_at_trx_commit=1在主服务器上创建复制用户:
-- 创建复制用户
CREATE USER 'replication_user'@'%' IDENTIFIED BY 'your_password';
-- 授予复制权限
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';
-- 刷新权限
FLUSH PRIVILEGES;2. 从服务器配置
[mysqld]
# 设置服务器ID,用于标识从服务器
server-id=2
# 设置监听地址,用于主服务器连接
bind-address=从服务器IP地址
# 设置中继日志文件名
relay-log=mysql-relay-bin
# 配置复制的数据库
replicate-do-db=<需要复制的数据库名>
# 设置 InnoDB 缓冲池大小,根据可用内存和数据库大小进行调整
innodb_buffer_pool_size=2G
# 设置 InnoDB 重做日志文件大小,根据写入负载进行调整
innodb_log_file_size=256M
# 设置 InnoDB 事务提交时刷新日志的策略,可以设置为 0、1 或 2
# 设置为 0 或 2 可以提高性能,但可能导致数据丢失
innodb_flush_log_at_trx_commit=1
# 设置为 1 以确保从服务器在崩溃恢复后正确处理中继日志
relay_log_recovery=1在从服务器上配置主服务器信息:
-- 配置主服务器信息
CHANGE MASTER TO
MASTER_HOST='主服务器IP地址',
MASTER_USER='replication_user',
MASTER_PASSWORD='your_password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=0;在从服务器上启动复制进程:
-- 启动复制进程
START SLAVE;在从服务器上检查复制状态:
-- 查看复制状态
SHOW SLAVE STATUS\G;