Mysql主从复制

目录

1.配置主服务器:

1)设置server-id值并开启binlog参数

 2) 建立同步账号

3)锁表设置只读

4)查看主库状态

5)备份数据库数据

6)解锁

7)主库备份数据上传到从库

2.从库上设置

1)设置server-id值并关闭binlog参数

2)设定从主库同步

3)启动从库同步开关

4)检查状态

删除uid:/var/lib/mysql/auto.cnf

MySQL主从复制的原理:


要实现MySQL主从复制,你需要在两台机器上进行相应的配置和操作。下面是具体的步骤:

主库:192.168.163.138

从库:192.168.163.137

1.配置主服务器:

1)设置server-id值并开启binlog参数


[root@localhost ~]# vim /etc/my.cnf

[mysqld]
log_bin = mysql-bin
server_id = 120

 2) 建立同步账号

mysql> grant replication slave on *.* to 'rep'@'192.168.163.%' identifiified by 'Aa123456.';
mysql> show grants for 'rep'@'192.168.95.%';

Mysql主从复制_第1张图片

3)锁表设置只读

mysql> flush tables with read lock;
mysql> show variables like '%timeout%';

4)查看主库状态

mysql> show master status;

5)备份数据库数据

 mysqldump -uroot -p -A -B |gzip > /server/backup/mysql_bak.$(date +%F).sql.gz

6)解锁

mysql> unlock tables;

7)主库备份数据上传到从库

scp /server/backup/mysql_bak.2015-11-18.sql.gz 192.168.95.130:/server/backup/

2.从库上设置

1)设置server-id值并关闭binlog参数

#log_bin = /data/mysql/data/mysql-bin
server_id = 130

2)设定从主库同步

mysql> change master to
MASTER_HOST='192.168.163.138',
MASTER_PORT=3306,
MASTER_USER='rep',
MASTER_PASSWORD='Aa123456.',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=448;

3)启动从库同步开关

mysql> start slave;

4)检查状态

mysql> show slave status\G

Mysql主从复制_第2张图片

 

 Mysql主从复制_第3张图片

 成功建立主从复制

直接克隆的linux主机可能会uuid相同,导致建立连接错误

删除uid:/var/lib/mysql/auto.cnf

重启重新生成

MySQL主从复制的原理:

1. 主服务器(Master)将数据更改记录到二进制日志(Binary Log)中。这些更改可以是插入、更新或删除操作。

2. 从服务器(Slave)连接到主服务器,并请求复制主服务器的二进制日志。

3. 主服务器将二进制日志传输给从服务器,并从中读取数据更改。

4. 从服务器将接收到的数据更改应用到自己的数据库中,使自己的数据与主服务器保持同步。

5. 从服务器周期性地向主服务器发送心跳信号,以检测主服务器是否存活。

6. 如果主服务器发生故障或网络中断,从服务器可以被提升为新的主服务器,以继续提供服务。

主从复制的原理基于MySQL的二进制日志和复制线程。主服务器将数据更改记录到二进制日志中,并通过网络传输给从服务器。从服务器的复制线程读取二进制日志,并将数据更改应用到自己的数据库中。

主从复制的优点包括提高数据可用性、增加读取性能、实现数据备份和故障恢复等。但也需要注意主从复制可能存在的延迟和一致性问题。

你可能感兴趣的:(mysql,数据库)