系统:Centos 7
MySQL:5.7
参考资料:https://blog.csdn.net/thekenofdis/article/details/78965941
---------------------------------------------------------------------------------------
主数据库:192.168.1.101
从数据库:192.168.1.102
代码里不知道为什么会有<strong>,不知道咋处理掉。。。忽视就好了
一、主库上先开启logbin
log-bin必须写在[mysqld]模块的范围里面
server-id必须是唯一的,不能跟其他数据库ID重复
然后重启mysql服务,到log-bin指定的目录里查看是否mysql-bin和index文件
记得把目录给mysql这个用户w权限,否则mysql在目录里写入不了数据,那启动mysql就会报错
[root@localhost data]# pwd
/data
[root@localhost data]# ls
mysql-bin.000001 mysql-bin.index
[root@localhost data]#
二、在主库上创建用户,用于从库来复制同步数据
replication salve:这是允许同步的权限
192.168.1.102:这是从库的地址,可以允许单个IP,也可以允许某个IP段
mysql> grant replication slave on *.* to 'fuzhi'@'192.168.1.102' identified by 'Lin123456+';
Query OK, 0 rows affected, 1 warning (1.64 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
三、在从库上设置server-id
四、在从库上change master
mysql> change master to
-> MASTER_HOST='192.168.1.101', //填主库的IP地址
-> MASTER_PORT=3306, //填主库mysql的端口
-> MASTER_USER='fuzhi', //填主库允许同步复制的账号,这里是mysql里创建的用户
-> MASTER_PASSWORD='Lin123456+', //同上,不过这里是填密码
-> MASTER_LOG_FILE='mysql-bin.000001', //主库binlog的位置,在主库上进数据库,然后show master logs;可以查看
-> MASTER_LOG_POS=1145; //开始的位置,查看方法同上。
Query OK, 0 rows affected, 2 warnings (1.66 sec)
mysql>
上述命令会生成一个文件叫master.info,以后同步复制的信息都会更新在这个文件里
五、在从库上开启slave
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)
检查从库的slave是否起来,若Slave_IO_Running和Slave_SQL_Running都为yes,则表示正常。
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.101
省略......
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes //为Yes
Slave_SQL_Running: Yes //为Yes
Replicate_Do_DB:
省略.....
1 row in set (0.00 sec)
六、完成
现在主库上有什么操作,从库上都会及时自动更新。