mac下mysql主从同步配置

  • Post author:
  • Post category:mysql

一、环境说明

两台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日志文件,以及偏移量
1094929-20180408182932722-865376995.png

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日志,碰到问题多查日志~

转载于:https://www.cnblogs.com/gaofengfengfeng/p/8746710.html