一.材料准备
1.虚拟机
2.centos7
①:主机192.168.88.100
②从机:192.168.88.101
这两个要能互通,最好关闭防火墙,或者把端口暴露,自行百度
3.数据库
①主库新建一个库,建一个表,然后导出,再导入到从库,保证两个数据一致.
二.配置uuid
因为我的mysql是从一个虚拟机镜像克隆的,所以两个mysql的uuid是一致的,要修改一下,不然后面会出问题(单独安装的跳过)
在/var/lib/mysql/auto.cnf文件中就有uuid,修改这个文件总的uuid的值,随便替换几个字符就可以了.最好是主库个从库都修改下.
三.开始配置
1.主库
①修改my.cnf
在/etc/my.cnf文件中最后加入
server-id=100 #数据库服务的唯一标识,一般为服务器Ip的末尾号
log-bin=mysql-bin #开启binlog
binlog-do-db=iyousi #同步的数据库,这里可以不写,不写就代表所有库,我自己加了一个限制,只同步这个库
②然后重启数据
systemctl restart mysqld
③创建授权账户
登录数据库后,创建一个用于同步的账户,密码复杂点,不然会失败
##创建
create user 'repl'@'192.168.88.%' identified by 'Passw0rd!';
##授权
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.88.%';
④刷新数据库
FLUSH PRIVILEGES;也可以重启数据库,都可以
⑤查看状态
show master status;
会得到一个表格,记住这几列的值
第一个:File
第二个:Position
主机配置就完成了
2.从库
①修改my.cnf
#从机配置
log_bin=mysql-bin #开启binlog
server_id=101 #数据库服务的唯一标识,一般为服务器Ip的末尾号
replicate-do-db=iyousi#要同步的数据库,这里与上面的要一致,可以不写就是所有的都同步,我这里写了的
②重启数据库
systemctl restart mysqld
③创建一个同步
CHANGE MASTER TO
master_host = '192.168.88.100',
master_user = 'repl',
master_password = 'Passw0rd!',
master_log_file = 'mysql-bin.000001',
master_log_pos = 154;
master_host:主机ip
master_user:用于同步的用户
master_password:密码
master_log_file:这就是上面要记住的那个值
master_log_pos:这个也是
④开始同步
start slave;
⑤查看状态
show slave status G
如果
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
都为yes,就成功了
试试效果吧,在主库修改数据,可以看到从库数据也变了