mysql_主从复制

MySQL主从复制

一.材料准备

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,就成功了

试试效果吧,在主库修改数据,可以看到从库数据也变了

 

原文地址:https://www.cnblogs.com/songfahzun/p/9470829.html