参考
https://blog.youkuaiyun.com/deeplearnings/article/details/78398526
两个mysql版本最好相同,或者前面的版本相同,如5.7.x
MASTER
vim /etc/my.cnf
# 添加如下配置,如提示这个文件只读,把权限改成777,改完后再改回664,要不然mysql无法启动
[mysqld]
log-bin=mysql-bin //启用二进制日志
server-id=222 //唯一,不能和slave重复
启动mysql并连接
# 创建slave 的账号密码
GRANT REPLICATION SLAVE ON *.* to 'slave'@'%' identified by 'dengbin97mysql';
# 刷新权限
flush privileges;
# 查看master的状态,记录下file和position字段,slave会用到
show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 590 | | | |
+------------------+----------+--------------+------------------+-------------------+
SLAVE
# 同master,修改server的id,不重复即可,
# slave 不需要开启二进制日志,master开启二进制日志是用来给slave同步用的
server-id=1024
启动mysql并连接
# 执行如下命令
change master to
master_host='119.29.161.XXX', # master的ip
master_user='slave', # 之前创建的用户名
master_password='dengbin97mysql', # 密码
master_log_file='mysql-bin.000001', # master上查看的状态中的日志文件名和position
master_log_pos=590;
# 开启slave
start slave;
# 查看slave状态
show slave status\G;
# 这两项为yes即可,master的操作会同步到slave
# Slave_IO_Running:连接到主库,并读取主库的日志到本地,生成本地日志文件
# Slave_SQL_Running:读取本地日志文件,并执行日志里的SQL命令。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes