mysql读写分离
一.配置主库
- 修改master的配置文件,设置服务器id以及打开二进制日志文件
vim /etc/my.cnf
加入
#给服务器起一个唯一的id
server-id=1
#开启二进制日志
log-bin=mysql-bin
2.重启mysql
service mysqld restart
3.登陆mysql,查看master状态,返回如图表示配置主库成功
show master status;
4.在主服务器上建立帐户并授权slave。我们记住这个授权账户的账号为 mysync,密码为123456,在配置从库的时候用到
GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' identified by '123456';
二.配置从库
1. 配置slave的配置文件
vim /etc/my.cnf
加入
#给服务器起一个唯一的id
server-id=2
#服务中继日志
relay_log=mysql-relay-bin
#设置为只读
read_only=1
2.重启mysql
service mysqld restart
3.登录mysql,并且打开slave的复制功能
3.1查看当前mysql有木有启动slave复制功能
show slave status;
表示木有打开复制功能,要是打开了。则要reset slave ; 重置slave.或关闭 stop slave 关闭salve
3.2登陆主库的mysql,查看master状态
show master status;
记住 Feile以及Position的值
3.3切换到从库的mysql, 在从服务器通过语句指定要复制的主服务器
在从服务器通过语句指定要复制的主服务器
change master to master_host='192.168.26.135',master_user='mysync',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=226;
master-host: 主库的ip
master-user:主库授权的复制账号
master-password 主库授权的复制账号的密码
master_log_file:为步骤3.2的File
master_log_pos:为步骤3.2的Position
3.4 启动从库复制功能
start salve;
3.5查看从库复制功能是否成功。
show salve status\g;
备注:
- 要是在执行3.3的时候,发现连接不到主库,请先确保可以ping得通主库的ip,再考虑主库的3306端口是否给防火墙屏蔽了不对外开放。
- - 常用命令:
show master status ; 查看master的状态, 尤其是当前的日志及位置
show slave stattus; 查看slave的状态.
reset slave ; 重置slave状态.
start slave ; 启动slave 状态(开始监听msater的变化)
stop slave; 暂停slave状态;