一、环境说明
两台mac,mysql环境master是5.7.20,slave是5.7.21
master IP: 172.21.127.10
slave IP:172.21.127.12
二、master机器配置
1、更改配置文件
# Default Homebrew MySQL server config
[mysqld]
# Only allow connections from localhost
bind-address = 172.21.127.10
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
server-id = 1
log-bin = mysql-bin
binlog-format = ROW #选择row模式
2、重启mysql使上述配置生效
3、创建用于主从同步的用户,为其授权,并指定该用户只能在172.21.127.12这台机器上登陆。
grant replication slave on *.* to \'slave1\'@\'172.21.127.12\' identified by "slavepass";
4、为了保证主从库的数据库一致性,需要先为master加上读锁,使其变成只读
FLUSH TABLE WITH READ LOCK
5、记录下master的binlog日志文件,以及偏移量
6、将master上现有数据导出,进入你想要导出sql文件的目录下,执行下面语句。
mysqldump -uroot -proot --all-databases > db.sql
7、解除master的读锁
UNLOCK TABLES;
8、将db.sql复制到slave机器上
三、slave机器配置
1、首先还是修改配置文件。参考master机器上的配置。将server-id修改,不能重复,如果没有配置server-id一会儿start slave会报错
2、重启mysql
3、将书面的db.sql导入到数据库
mysqldump -u root -p 要导出的数据库名>名字随意.sql
#在这里直接
mysqldump -root -proot < /Users/my/db.sql
4、使slave与master建立其起同步,这是很关键的一步
STOP SLAVE;
CHANGE MASTER TO
MASTER_HOST=\'172.21.127.10\',
MASTER_USER=\'slave1\',
MASTER_PASSWORD=\'slavepass\',
MASTER_LOG_FILE=\'mysql-bin.000003\',
MASTER_LOG_POS=1791;
START SLAVE;
四、总结
经过以上步骤你就可以简单的实现主从同步了,如果有问题,可以多看之前配置的log-error日志,碰到问题多查日志~