本文共 1530 字,大约阅读时间需要 5 分钟。
MySQL 中的二进制日志 (bin log) 记录了所有修改数据库的 SQL 语句,包括插入、更新、删除、创建/修改/删除表、授权等操作。主从复制的核心原理是通过将主节点的二进制日志复制到从节点,并在从节点上执行这些日志中的操作,从而实现数据的一致性。
启用二进制日志:
log_bin = mysql-bin
设置唯一的服务器 ID:
server-id = 1
示例配置文件:
[mysqld]server-id=1log-bin=mysql-bin
重启主节点并查看状态:
/etc/init.d/mysqld restart
查看主节点状态:
mysql -p -e "SHOW MASTER STATUS"
配置文件示例:
[mysqld]server-id=2log_bin=mysql-binrelay_log=mysql-relay-binlog_slave_updates=1read_only=1
启动从节点的复制:
CHANGE MASTER TO MASTER_HOST='172.25.21.2', MASTER_USER='repl', MASTER_PASSWORD='westos', MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=437;START SLAVE;
查看从节点状态:
mysql -p -e "SHOW SLAVE STATUS\G"
主节点:
dump thread 用于向从节点发送二进制日志。I/O thread 请求主节点的二进制日志。从节点:
relay log)。SQL thread 执行中继日志中的操作。日志文件管理:
mysql-bin.000001、mysql-bin.000002 等二进制日志文件。server2-relay-bin.000001 等中继日志文件。在主节点中创建数据库:
mysql -pwestos -e "create database westos;"
查看从节点的数据库列表:
mysql -pwestos -e "show databases;"
重启主节点和从节点,确保复制完成:
/etc/init.d/mysqld restart
查看从节点的数据库列表是否与主节点一致:
mysql -pwestos -e "show databases;"
二进制日志文件:
mysql-bin.000001、mysql-bin.000002 等。server2-relay-bin.000001 等。权限设置:
GRANT REPLICATION SLAVE ON *.* 授权从节点访问主节点的二进制日志。数据一致性:
性能优化:
read_only 避免直接修改从节点数据。relay_log 和 log_slave_updates 参数,确保复制高效稳定。通过以上步骤,可以实现MySQL的主从复制,确保数据在主从节点之间的一致性和高效同步。
转载地址:http://vpsv.baihongyu.com/