CentOS MySQL主从复制原理主要基于MySQL的二进制日志(Binary Log)和I/O线程、SQL线程。以下是主从复制的详细步骤和原理:
my.cnf或my.ini文件中,确保以下配置项已设置:[mysqld] server-id = 1 # 主服务器的唯一ID log_bin = /var/log/mysql/mysql-bin.log # 二进制日志文件路径 binlog_do_db = your_database # 需要复制的数据库(可选) systemctl restart mysqld CREATE USER 'replicator'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%'; FLUSH PRIVILEGES; SHOW MASTER STATUS; 记录File和Position的值。my.cnf或my.ini文件中添加以下配置:[mysqld] server-id = 2 # 从服务器的唯一ID,必须与主服务器不同 relay_log = /var/log/mysql/mysql-relay-bin.log # 中继日志文件路径 log_bin = /var/log/mysql/mysql-bin.log # 可选,如果需要从服务器也记录二进制日志 replicate_do_db = your_database # 需要复制的数据库(可选) systemctl restart mysqld CHANGE MASTER TO MASTER_HOST='master_ip', # 主服务器的IP地址 MASTER_USER='replicator', # 复制用户的用户名 MASTER_PASSWORD='password', # 复制用户的密码 MASTER_LOG_FILE='mysql-bin.000001', # 主服务器的二进制日志文件名 MASTER_LOG_POS=123; # 主服务器的二进制日志位置 将MASTER_LOG_FILE和MASTER_LOG_POS替换为你之前记录的值。START SLAVE; SHOW SLAVE STATUS\G 关键字段解释: Slave_IO_Running: I/O线程状态,应为Yes。Slave_SQL_Running: SQL线程状态,应为Yes。Seconds_Behind_Master: 从服务器落后主服务器的时间(秒)。通过以上步骤和原理,CentOS MySQL主从复制可以有效地实现数据的实时备份和负载均衡。