mysql主从集群
配置步骤
- 1主库打开log-bin
- 2主库和从库的server-id 设置的要不相同
- 3主库上建立用于从库复制的帐号
- 4把主库做个备份
- 5将主库的备份灌到从库
- 6在从库执行CHANGE MASTER TO
- 7开启同步 start slave; (报错就重启mysql服务 )
主库相关操作
开启主库的log-bin
vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
log-bin=/var/lib/mysql/log/mysql-bin
server-id = 1
这里的log-bin文件放置的目录要的用户和用户组要修改为mysql
server-id 不能重复
mysql-bin是日志文件的前缀,这里的路径/var/lib/mysql/log/一定要存在,才可以
查看log-bin 是否开启
[root@node01 log]# mysql -uroot -p123456 -e “show variables like ‘log_bin’”
+—————+——-+
| Variable_name | Value |
+—————+——-+
| log_bin | ON |
+—————+——-+
在主库上建立用于从库复制的帐号rep
grant replication slave on . to ‘rep’@’%’ identified by ‘123456’
flush privileges;
给主库做备份
1给主库加个锁
mysql> flush tables with read lock;
mysql> show master status;
+——————+———-+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000001 | 566 | | |
+——————+———-+————–+——————+
1 row in set (0.00 sec)
2dump数据
mysqldump -uroot -p123456 -A -B –events –master-data=2 > /opt/rep.sql
mysql> unlock tables;
将主库备份灌到从库中
mysql -uroot -p123456 < /opt/rep.sql
从库相关操作
设置从库的server-id
vim /etc/my.cnf
server-id = 3
在从库执行change master to
CHANGE MASTER TO
MASTER_HOST=’192.168.254.50’,
MASTER_PORT=3306,
MASTER_USER=’rep1’,
MASTER_PASSWORD=’123456’,
MASTER_LOG_FILE=’mysql-bin.000001’,
MASTER_LOG_POS=3446
mysql> start slave;
检查是否成功开启
mysql> show slave status\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
测试
在主库上测试创建数据库或者向表中新增记录