mysql配置主从复制
1、修改主服务器下面的文件:
vim /etc/my.cnf //修改 mysql 配置文件
写入:
server-id=199 //值一般是 IP 的后三位。是为了在多台集群的时候区分那台是那台。(因为这个例子是一对一分离,实际中有可能是1对多,多下面还有多个)
log-bin=mysql-bin //声明生成配置文件,生成后名字为 mysql-bin0000什么的(存在 /var/lib/mysql/ 下)
binlog-format=mixed //根据什么生成二进制文件。mixed 是混合的意思。让 mysql 判断是根据 sql 语句还是根据磁盘发生变化。
2、修改从服务器下面的文件:
vim /etc/my.cnf //修改 mysql 配置文件
server-id=200
relay-log=mysql-relay //读取主服务器主文件
3、主服务创建授权账号:
grant replication client,replication slave on *.* to'repl'@'192.168.%.%' identified by 'root';
/// *.* 代表全局,必须作用于所有库上和所有表上。(而 mongoDB 可以单选某个库下的某张表做主从分离)
///repl@192.168.%.% 代表 repl 账号可以在 192.168... ip上可以发挥作用
///密码是 root
4、在从服务器配置主服务器信息:
change master to master_host='192.168.0.199', //主服务 ip (在从服务器端登录授权账号)
master_user='repl', //主服务器的授权账号
master_password='root', //主服务器的授权密码
master_log_file='mysql-bin.000003', //主服务器当前使用的二进制文件
master_log_pos=278; //主服务二进制文件当前指针位置
【上面这是一句话!在从服务器上直接执行即可】
start slave; //启动从服务器(开始监听主服务器变化),不开启没用。
show slave status; //显示这个 Waiting for master to send event 说明建立连接成功。只要主服务器上有任何改动,从服务器就会产生相应的改动。
more mysql-bin.index //展示生成了哪些二进制文件。(必须要进入到二进制文件存放目录)
show master status; //显示主服务器状态。当前使用的是那个二进制文件,指针位置。这个很重要
show slave status; //显示从服务器状态。
reset slave; //重置从服务器(重置后,如果还想主从。要从新配置主服务器相关信息)
stop slave; //暂停监听,停止做从服务器(就停止监听了)
注意:可以一主多从,但是不能一从多主。