- 准备两台机子并安装相同版本的mysql,一台作为主库,一台作为从主,并都关闭防火墙及selinux
- systemctl start mysqld #两台机子都开启数据库
- 主库机上修改配置文件:
vim /etc/my.cnf #在[mysqld]下面添加如下内容
server-id=1 #定义server id master必写
log-bin = mylog #开启binlog日志,master必写
gtid_mode = ON #开启GTID
enforce_gtid_consistency=1 #强制gtid
4.systemctl restart mysqld #重启主库 - 创建从库连接主库的用户并授权:(登录主库mysql操作)
grant replication slave,reload,super on . to ‘用户名’@’%’ identified by ‘密码’;
flush privileges; #刷新主库授权表
6.从库机修改配置文件
vim /etc/my.cnf #在[mysqld]下面添加如下内容
server-id=2 #这个不能和主机一样,实际生产建议用机子ip的后三位
gtid_mode = ON
enforce_gtid_consistency=1
master-info-repository=TABLE
relay-log-info-repository=TABLE #中继日志
7.systemctl restart mysqld #重启从库
8.指定主库地址及被授权用户(登录从库mysql操作)
\e #打开mysql命令编写框 写如下内容;
change master to
master_host=‘master1’, #主ip 地址 最好用域名 若用域名两台机子要胡做本地Dns解析 通过配置/etc/hosts 文件
master_user=‘授权用户’, #主服务上面创建的用户
master_password=‘授权密码’, #逗号别忘记,逗号代表没写完。
master_auto_position=1;
9.start slave; #从库开启slave角色,
10.show slave status\G #查看状态,验证sql和IO是不是yes。 都是yes带表成功,有问题的话就要排错喲!
上面是构建了一主一从,我们还可也以构建一主多从,多从:主机库配置还是和上面一样,多个从库做和上面从库一样的步骤,但 server-id 值每个从机要不同。下面以在再加一个从机为例(最好三台互做本地dns解析):
1.从库机2修改配置文件
vim /etc/my.cnf #在[mysqld]下面添加如下内容
server-id=3 #这个不能和主机一样,实际生产建议用机子ip的后三位
gtid_mode = ON
enforce_gtid_consistency=1
master-info-repository=TABLE
relay-log-info-repository=TABLE #中继日志
2.systemctl restart mysqld #重启从库
3.指定主库地址及被授权用户(登录从库mysql操作)
\e #打开mysql命令编写框 写如下内容;
change master to
master_host=‘master1’, #主ip 地址 最好用域名 若用域名两台机子要胡做本地Dns解析 通过配置/etc/hosts 文件
master_user=‘授权用户’, #主服务上面创建的用户
master_password=‘授权密码’, #逗号别忘记,逗号代表没写完。
master_auto_position=1;
4.start slave; #从库开启slave角色,
5.show slave status\G #查看状态,验证sql和IO是不是yes。 都是yes带表成功,有问题的话就要排错喲!