
本文将详细介绍如何在CentOS系统上配置MySQL主从复制,并提供一份详尽的配置文件指南及实战步骤
一、环境准备 在进行MySQL主从配置之前,请确保您已经准备好了以下环境: 1.两台CentOS服务器:一台作为主服务器(Master),另一台作为从服务器(Slave)
2.统一的MySQL版本:建议MySQL版本为5.7及以上,以确保兼容性和稳定性
本文示例将基于MySQL 8.0.40版本
3.网络互通:确保两台服务器之间的网络是互通的,且3306端口(MySQL默认端口)是开放的
二、主服务器(Master)配置 1. 编辑MySQL配置文件 首先,登录到主服务器,并编辑MySQL配置文件(通常位于`/etc/my.cnf`或`/etc/mysql/my.cnf`)
以下是配置文件的详细示例: ini 【mysqld】 基础配置 port=6305 MySQL服务监听端口(需与客户端连接配置一致) basedir=/usr/local/mysql MySQL安装目录 datadir=/usr/local/mysql/data 数据文件存储目录(包含数据库文件、日志等) socket=/usr/local/mysql/data/mysql.sock Unix套接字文件路径(本地连接使用) 连接与安全 max_connect_errors=10000 允许的最大连接错误次数(防暴力破解,建议设为较大值) character-set-server=utf8mb4 默认字符集(支持Emoji和扩展字符) default-storage-engine=INNODB 默认存储引擎(推荐InnoDB,支持事务、行级锁) user=ydroot MySQL服务运行用户(需与系统用户一致) 复制相关配置 server-id=1 唯一服务器标识(主从复制必须唯一) log-bin=mysql-bin 启用二进制日志(文件名前缀) binlog-do-db=datasynchron 仅同步指定数据库(若需全库同步,删除此行) binlog-ignore-db=mysql 被忽略的数据库(可选) 数据包与通信 max_allowed_packet=512M 允许的最大数据包大小(大文件传输需调大) GTID配置(增强复制可靠性) gtid_mode=ON 启用全局事务标识符 enforce_gtid_consistency=ON 强制GTID一致性(禁止非事务性操作) 二进制日志格式 binlog_format=ROW ROW模式记录行级变化,推荐用于复制 日志清理策略 expire_logs_days=7 自动清理7天前的二进制日志(单位:天) binlog_expire_logs_seconds=604800 另一种表示方式,7天(604800秒) 【client】 port=6305 客户端连接端口(需与服务器端一致) socket=/usr/local/mysql/data/mysql.sock 客户端套接字路径(本地连接使用) default-character-set=utf8mb4 客户端默认字符集 【mysqld_safe】 log-error=/usr/local/mysql/data/localhost.localdomain.err 错误日志路径 pid-file=/usr/local/mysql/data/localhost.localdomain.pid PID文件路径(记录进程ID) 2. 重启MySQL服务 配置完毕后,重启MySQL服务以使配置生效: bash sudo systemctl restart mysql 或者手动关闭后启动: bash pkill mysqld /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf & 3. 创建复制账号 在主服务器上创建一个用于复制的MySQL用户,并授予全局复制权限: sql CREATE USER replication_user@% IDENTIFIED BY password; -- 生产环境禁止这样使用,因为允许从任何IP连接 -- CREATE USER replication_user@specific_ip IDENTIFIED BY password REQUIRE SSL; -- 生产环境使用,强制使用SSL加密 GRANT REPLICATION SLAVE ON- . TO replication_user@%; -- 或者 specific_ip FLUSH PRIVILEGES; 4. 获取二进制日志文件和位置 运行以下命令,记录当前二进制日志文件和位置,这些信息将在从服务器上配置时使用: sql SHOW MASTER STATUS; 输出结果可能类似于: +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 107 | datasynchron | | +------------------+----------+--------------+------------------+ 记下`File`和`Position`字段的值,稍后在从服务器上使用
三、从服务器(Slave)配置 1. 编辑MySQL配置文件 登录到从服务器,并编辑MySQL配置文件: bash sudo vi /etc/my.cnf 以下是配置文件的详细示例: ini 【mysqld】 MySQL服务基础配置 port=6306 MySQL服务监听端口(非默认3306,避免冲突) basedir=/usr/local/mysql MySQL安装根目录 datadir=/usr/local/mysql/data 数据库文件存储路径 socket=/usr/local/mysql/data/mysql.sock 本地连接使用的套接字文件 连接安全配置 max_connect_errors=10000 允许的最大连接错误次数(防暴力破解) skip-name-resolve 禁用DNS解析(提升连接速度,但要求授权使用IP而非主机名) 复制相关配置 server-id=2 唯一服务器标识(与主服务器不同) 以下配置在从服务器上设置,但通常不需要手动指定,因为从服务器会自动处理 master-host=192.168.1.xxx 主服务器IP地址(旧版配置方式,现可通过CHANGE MASTER TO指定) master-user=xxx 用于复制的用户名 master-passwor
高效攻略:如何在MySQL中实现千万级数据的快速统计与分析
CentOS MySQL主从配置实战指南
MySQL字符函数操作技巧揭秘
小荷叶MySQL入门指南
MySQL文件无法运行?排查指南
MySQL JSON字段值高效截取技巧
Windows下MySQL数据库失踪之谜
高效攻略:如何在MySQL中实现千万级数据的快速统计与分析
MySQL字符函数操作技巧揭秘
小荷叶MySQL入门指南
MySQL文件无法运行?排查指南
MySQL JSON字段值高效截取技巧
Windows下MySQL数据库失踪之谜
全面指南:如何安全卸载与移除MySQL数据库
MySQL学习宝典:掌握数据库精髓
MySQL必知10点,掌握数据库精髓
XAMPP中如何卸载MySQL数据库
XAMPP MySQL端口修改全攻略
禁用MySQL Root免密登录安全指南