mysql主从skip1677_mysql主从复制部署

本文详细介绍了如何在MySQL中实现主从复制,包括设置binlog日志、授权、配置复制、备份与还原,以及验证复制效果。通过步骤演示了在miles21和miles22之间搭建主从关系,确保业务连续性和性能提升。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1a9bfafb304c5e82714393cd532f5dd0.png

主从复制的用途:

实时灾备,用于故障切换

8e20a044038ebad7c64d96b4140b880b.png

3a36fa77439f6497f93d19cae145216e.png

66c179f706f89181fed9696cb9e817fc.png

读写分离,提供查询服务

58e659f07c1e87b020c6496307f24256.png

备份,避免影响业务

1e66fae569811dcc634d74827dc854b0.png

主从复制部署

必要条件

主库开启binlog日志(设置log-bin参数)

主从server-id不同

从库服务器连通主库

步骤

备份还原(mysqldump或xtrabackup)

授权(grant replication slave on .)

配置复制,并启动(change master to )

查看主从复制信息(show slave status\G)

实验环境:

节点1:(主节点)

hostname:miles21

ip :192.168.137.21

节点2:(从节点)

hostname:miles22

ip :192.168.137.22

备份miles21上的数据

[root@miles21 ~]# mysqldump -uroot -pbeijing --socket=/data/mysql.sock --single-transaction -A --master-data=1 > /home/mysql/backup/all_db.sql

查看备份文件

[root@miles backup]# more all_db.sql

...

CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000013', MASTER_LOG_POS=528;

...

还原miles21上的数据

[root@miles21 mysql]# mysql -uroot -pbeijing -hmiles22 -P3307

mysql> source /home/mysql/backup/all_db.sql;mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| db1 |

| mysql |

| performance_schema |

+--------------------+

4 rows in set (0.00 sec)

授权:在miles21上授权一个具有复制权限的用户

[root@miles backup]# mysql -uroot -p --socket=/data/mysql.sock

mysql> grant replication slave on *.* to repl@'192.168.137.22' identified by 'beijing';

Query OK, 0 rows affected (0.01 sec)

配置复制:在miles22上

[root@miles22 ~]# mysql -uroot -p --socket=/data/mysql.sock

mysql> ? change master to

...

CHANGE MASTER TO

MASTER_HOST='master2.mycompany.com',

MASTER_USER='replication',

MASTER_PASSWORD='bigs3cret',

MASTER_PORT=3306,

MASTER_LOG_FILE='master2-bin.001',

MASTER_LOG_POS=4,

MASTER_CONNECT_RETRY=10;

...

#这里的MASTER_LOG_FILE、MASTER_LOG_POS为备份文件中的信息(上文中可看到)

mysql> CHANGE MASTER TO MASTER_HOST='192.168.137.21',MASTER_USER='repl',MASTER_PASSWORD='beijing',MASTER_PORT=3333,MASTER_LOG_FILE='mysql-bin.000013',MASTER_LOG_POS=528;

Query OK, 0 rows affected, 2 warnings (0.02 sec)

#启动复制

mysql> start slave;

Query OK, 0 rows affected (0.01 sec)

#查看主从复制信息

mysql> show slave status\G

...

#表示主从复制OK

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

...

检验主从复制

在miles21上进行操作

mysql> show tables;

+---------------+

| Tables_in_db1 |

+---------------+

| test |

+---------------+

1 row in set (0.00 sec)

mysql> select * from test;

+------+------+

| id | name |

+------+------+

| 1 | m1 |

| 2 | m2 |

+------+------+

2 rows in set (0.00 sec)

mysql> insert into test values (3,'m3'),(4,'m4');

Query OK, 2 rows affected (0.00 sec)

Records: 2 Duplicates: 0 Warnings: 0

mysql> commit;

Query OK, 0 rows affected (0.00 sec)

mysql> create database db2;

Query OK, 1 row affected (0.00 sec)

在miles22上查看

mysql> select * from test;

+------+------+

| id | name |

+------+------+

| 1 | m1 |

| 2 | m2 |

| 3 | m3 |

| 4 | m4 |

+------+------+

4 rows in set (0.00 sec)

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| db1 |

| db2 |

| mysql |

| performance_schema |

+--------------------+

5 rows in set (0.00 sec)

在miles21上

mysql> drop database db2;

Query OK, 0 rows affected (0.00 sec)

在miles22上查看

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| db1 |

| mysql |

| performance_schema |

+--------------------+

4 rows in set (0.00 sec)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值