Linux MySQL主从复制原理主要包括以下几个步骤:
开启二进制日志(Binary Log):
my.cnf或my.ini),添加或修改以下配置:[mysqld]
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = mydb # 只记录指定数据库的变更
创建复制用户:
CREATE USER 'replicator'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
FLUSH PRIVILEGES;
SHOW MASTER STATUS;
记录下File和Position的值。设置唯一的服务器ID:
server-id不同:[mysqld]
server-id = 2
relay_log = /var/log/mysql/mysql-relay-bin.log
log_bin = /var/log/mysql/mysql-bin.log
replicate_do_db = mydb # 只复制指定数据库
启动从服务器的复制线程:
CHANGE MASTER TO
MASTER_HOST='master_ip',
MASTER_USER='replicator',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001', # 使用之前记录的文件名
MASTER_LOG_POS=123; # 使用之前记录的位置
START SLAVE;
I/O线程:
SQL线程:
检查复制状态:
SHOW SLAVE STATUS\G命令来检查复制是否正常工作,关注Slave_IO_Running和Slave_SQL_Running的状态。处理延迟和故障:
通过以上步骤,可以实现Linux环境下MySQL的主从复制,提高数据的可用性和读取性能。