MySQL主从复制配置教程:实现数据备份和读写分离
在MySQL数据库中,主从复制是一种常用的配置方式,用于实现数据的冗余备份和读写分离。以下是MySQL主从复制的配置步骤:
-
配置主服务器(Master):
- 编辑主服务器的配置文件('my.cnf'或'my.ini'),启用二进制日志(binary logging)功能,添加以下配置:
[mysqld] server-id = 1 log-bin = mysql-bin
- 编辑主服务器的配置文件('my.cnf'或'my.ini'),启用二进制日志(binary logging)功能,添加以下配置:
-
重启主服务器。
-
创建用于复制的MySQL账号:
- 连接到主服务器的MySQL命令行客户端并执行以下命令:
CREATE USER 'replication_user'@'slave_ip' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'slave_ip'; FLUSH PRIVILEGES;
- 连接到主服务器的MySQL命令行客户端并执行以下命令:
-
备份主服务器的数据:
- 在主服务器上执行
FLUSH TABLES WITH READ LOCK;命令,暂停写入操作。 - 通过适当的方式备份主服务器上的数据。
- 在主服务器上执行
-
获取主服务器的二进制日志位置信息:
- 在主服务器的MySQL命令行客户端执行以下命令,并记录'File'和'Position'的值:
SHOW MASTER STATUS;
- 在主服务器的MySQL命令行客户端执行以下命令,并记录'File'和'Position'的值:
-
配置从服务器(Slave):
- 编辑从服务器的配置文件,添加以下配置:
[mysqld] server-id = 2
- 编辑从服务器的配置文件,添加以下配置:
-
重启从服务器。
-
在从服务器上启动复制进程:
- 在从服务器的MySQL命令行客户端执行以下命令:
CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='replication_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='master_log_file', MASTER_LOG_POS=master_log_pos;
其中,'master_ip'是主服务器的IP地址,'replication_user'是在第3步中创建的复制账号,'password'是密码,'master_log_file'和'master_log_pos'是在第5步中获取的二进制日志位置信息。
- 在从服务器的MySQL命令行客户端执行以下命令:
-
启动从服务器上的复制进程:
- 在从服务器的MySQL命令行客户端执行以下命令:
START SLAVE;
- 在从服务器的MySQL命令行客户端执行以下命令:
-
检查复制状态:
- 在从服务器的MySQL命令行客户端执行以下命令,确保'Slave_IO_Running'和'Slave_SQL_Running'的值都为'Yes':
SHOW SLAVE STATUS\G
- 在从服务器的MySQL命令行客户端执行以下命令,确保'Slave_IO_Running'和'Slave_SQL_Running'的值都为'Yes':
完成以上步骤后,MySQL主从复制就配置完成了。从服务器将自动从主服务器复制数据,并保持与主服务器的同步。您可以使用从服务器进行读操作,从而实现读写分离和负载均衡。请注意,主从复制的配置还涉及到网络、防火墙和安全相关的考虑,因此在实际操作中请谨慎配置和注意安全性。
原文地址: https://www.cveoy.top/t/topic/bJTJ 著作权归作者所有。请勿转载和采集!