MySQL MasterSlave Replication Setup(mysqlmrr)
MySQL有可能由于负载而变得缓慢,所以很多用户引入主从复制来分离读写查询,并改善MySQL的性能和可伸缩性,从而降低复杂度。
MySQL的主从复制是一种分布式的技术,用来把一个Twitter把数据库的内容复制到另外一个Server上面。主从复制涉及三个基本的服务器角色,master:主服务器,用来根据当前的数据库状态来控制变更的; slave:从服务器,用来根据主服务器发出的命令来更新数据; monitor:监控服务器,用来监控和报警主从复制的状态。
MySQL复制设置包括创建复制账户,检查和配置MySQL设置,配置账户权限,和运行复制脚本。配置过程如下:
1. 创建MySQL用户名和密码,并设置相应的权限:
a. 在主服务器上创建复制账户:
CREATE USER ‘replication’@’%’ IDENTIFIED BY ‘password’;
b. 赋予MySQL复制账号以下权限:
GRANT REPLICATION SLAVE ON *.* TO ‘replication’@’%’;
c. 在从服务器上创建用户:
CREATE USER ‘replication’@’%’ IDENTIFIED BY ‘password’;
2. 开启MySQL复制功能:
a. 主服务器:
vi /etc/my.cnf
[mysqld]
log-bin
server-id=1
b. 从服务器:
vi /etc/my.cnf
[mysqld]
server-id=2
read_only=yes
3. 检查MySQL配置:
a. 运行mysql命令:
mysql> SHOW MASTER STATUS;
b. 检查从服务器是否正常:
mysql> SHOW SLAVE STATUS \\G
4. 运行复制脚本:
a. 在从服务器上运行复制脚本:
CHANGE MASTER TO MASTER_HOST=’master.example.com’,MASTER_USER=’replication’,MASTER_PASSWORD=’password’,MASTER_LOG_FILE=”,MASTER_LOG_POS=;
b. 从服务器启动复制:
START SLAVE;
完成以上设置后,MySQL复制已经成功配置,从服务器可以从主服务器上复制数据。除此之外,还可以根据需要对MySQL复制进行优化,以节省资源,提高性能。