1、基础设置准备
centos6.5
5.7
node1:192.168.85.111(主)
node2:192.168.85.112(从)
2、安装mysql数据库
安装步骤见【MYSQL5.7在Linux系统详细安装步骤】
3、在两台数据库中分别创建数据库
create database test;
4、在主(node1)服务器进行如下配置:
vi /etc/my.cnf
log-bin=master-bin
binlog-format=ROW
server-id=1
binlog-do-db=test
5、配置从服务器登录主服务器的账号授权
set global validate_password_policy=0;
set global validate_password_length=1;
grant replication slave on *.* to 'root'@'%' identified by '123456';
flush privileges;
6、从服务器的配置
vi /etc/my.cnf
log-bin=master-bin
binlog-format=ROW
server-id=2
7、重启主服务器的mysqld服务
service mysqld restart
mysql -uroot -p
show master status;
8、重启从服务器并进行相关配置
service mysqld restart
mysql -uroot -p
change master to master_host='192.168.85.11',master_user='root',master_password='123456',master_port=3306,master_log_file='master-bin.000001',master_log_pos=154;
start slave
show slave status\G(注意没有分号)
9、此时可以在主服务器进行相关的数据添加删除工作,在从服务器看相关的状态
10、配置注意事项:
- master将操作语句记录到binlog日志中,然后授予slave远程连接的权限(master一定要开启binlog二进制日志功能;通常为了数据安全考虑,slave也开启binlog功能)。
- slave开启两个线程:IO线程和SQL线程。其中:IO线程负责读取master的binlog内容到中继日志relay log里;SQL线程负责从relay log日志里读出binlog内容,并更新到slave的数据库里,这样就能保证slave数据和master数据保持一致了。
- Mysql复制至少需要两个Mysql的服务,当然Mysql服务可以分布在不同的服务器上,也可以在一台服务器上启动多个服务。
- Mysql复制最好确保master和slave服务器上的Mysql版本相同(如果不能满足版本一致,那么要保证master主节点的版本低于slave从节点的版本)
- master和slave两节点间时间需同步