参考: https://www.jianshu.com/p/fba84c613e88
机器列表
系统ip主/从
centos 7.1192.168.200.210mastercentos 7.1192.168.200.211slavecentos 7.1192.168.200.212slave
一、master配置
[mysqld
]
log-bin
=mysql-bin
server-id
=100
创建用于复制操作的用户
mysql
> CREATE USER
'cluster'@
'192.168.200.%' IDENTIFIED WITH mysql_native_password BY
'cluster';
Query OK, 0 rows affected
(0.00 sec
)
mysql
> GRANT REPLICATION SLAVE ON *.* TO
'cluster'@
'192.168.200.%';
Query OK, 0 rows affected
(0.00 sec
)
mysql
> flush privileges
;
Query OK, 0 rows affected
(0.00 sec
)
或者不做ip段限制
mysql
> CREATE USER
'cluster'@
'%' IDENTIFIED WITH mysql_native_password BY
'cluster';
Query OK, 0 rows affected
(0.00 sec
)
mysql
> GRANT REPLICATION SLAVE ON *.* TO
'cluster'@
'%';
Query OK, 0 rows affected
(0.00 sec
)
mysql
> flush privileges
;
Query OK, 0 rows affected
(0.00 sec
)
可以通过 use mysql; select host,user from user; 查看新建用户
获取 主节点 binary log文件名和位置(position)
mysql
> SHOW MASTER STATUS
;
+------------------+----------+--------------+------------------+-------------------+
| File
| Position
| Binlog_Do_DB
| Binlog_Ignore_DB
| Executed_Gtid_Set
|
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001
| 855
| | | |
+------------------+----------+--------------+------------------+-------------------+
1 row
in set (0.00 sec
)
文件名:mysql-bin.000001 位置(Position ):855
二、slave0配置
[mysqld
]
server-id
=101
三、slave1配置
[mysqld
]
server-id
=102
四、slave0\1节点上设置主节点参数
mysql
> CHANGE MASTER TO
-
> MASTER_HOST
='192.168.200.210',
-
> MASTER_PORT
=3306,
-
> MASTER_USER
='cluster',
-
> MASTER_PASSWORD
='cluster',
-
> MASTER_LOG_FILE
='mysql-bin.000001',
-
> MASTER_LOG_POS
=855
;
Query OK, 0 rows affected, 2 warnings
(0.01 sec
)
MASTER_HOST:主机ip MASTER_PORT: 端口 MASTER_USER:帐号 MASTER_PASSWORD:密码 MASTER_LOG_FILE:日志文件 MASTER_LOG_POS=855:日志position
开启主从同步
mysql
> start slave
;
Query OK, 0 rows affected
(0.00 sec
查看从机状态
mysql
> show slave status\G
;
两个参数都是yes说明从服务器配置成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
现在可以尝试主库写入,查看从库是否自动同步数据
如果主节点参数填写错误,需要修改,可以先关闭同步,再修改参数
mysql
> stop slave
;
Query OK, 0 rows affected
(0.01 sec
)
mysql
> CHANGE MASTER TO
-
> MASTER_HOST
='192.168.200.210',
-
> MASTER_PORT
=3306,
-
> MASTER_USER
='cluster',
-
> MASTER_PASSWORD
='cluster',
-
> MASTER_LOG_FILE
='mysql-bin.000001',
-
> MASTER_LOG_POS
=855
;
mysql
> start slave
;
Query OK, 0 rows affected
(0.00 sec
五、如果主库已经存在数据,先把主库数据库备份再导入从库后,再进行同步
mysqldump -u 用户名 -p 数据库名
> 导出的文件名
mysql -u root -p
use 数据库名 (先创建数据库)
source var/local/xxx.sql
导入到从库后,再做上面的同步处理