主从复制,读写分离说明及配置
当业务越来越大,单台服务器已经不能扛住压力,此时添加服务器来分担流量压力,提高网站并发量。
实现读取分离功能至少两台数据库服务器,一台为主服务器负责写入数据服务,一台为从服务器负责提供查询服务,主服务器的任何操作都会同步到从服务器上。
主服务器配置:
vi my.cnf # linux my.ini #windows
[mysqld]
配置唯一的server-id
server-id= N(数字)
开启binlog二进制日志
log-bin=mysql-bin
获取master二进制日志文件名及位置
show master status;
创建一个用于slave和master通信的用户账号
#创建账号
grant权限 on 数据库.数据表 to ‘用户名’@’ip地址’ identified by ‘密码’;
#立刻生效
flush privileges;
从服务器配置
配置唯一的server-id
使用master分配的用户账号读取master二进制日志
#先停止从服务
stop slave;
CHANGE MASTER TO
#主服务器地址
MASTER_HOST='master2.mycompany.com',
#主服务器创建的通讯账号
MASTER_USER='replication',
#主服务器密码
MASTER_PASSWORD='bigs3cret',
#主服务器端口
MASTER_PORT=3306,
#主服务器binlog日志文件名
MASTER_LOG_FILE='master2-bin.001',
#日志记录起点位置
MASTER_LOG_POS=4,
#连接重试次数
MASTER_CONNECT_RETRY=10;
#启动从服务器
start slave;
其他命令
#删除账号
drop user‘用户名’@’ip地址’;
#执行该命令,就会产生一个新的binlog日志
flush logs;
#清空所有的binlog日志,并产生一个新的binlog日志
reset master;
#查看是否配置成功
show slave status\G;
Slave_IO_Running:Yes
此进程负责从服务器从主服务器上读取binlog日志,并写入从服务器上的中继日志。
Slave_SQL_Running:Yes
此进程负责读取并且执行中继日志中的binlog日志,
注:以上两个都为yes则表明成功