MySQL—搭建主从复制

目录

1、主从复制原理

mysql复制过程分成三步

2、准备工作

服务器加锁语句

备份主服务器上的数据库SQL文件(主服务器备份到从服务器)

3、主从复制操作

(1)主服务器配置

(2)从服务器配置

(3)验证从服务器是否连接上主服务器

 (4)验证主服务器和从服务器是否进行同步

 (5)从服务器执行同步后进行主服务器解锁操作


【前言】

        为什么需要主从复制?在业务复杂的系统中,假如有一句sql需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,有了主从复制后,主库负责写,从库负责读,这样即使主库出现了锁表,也可以通过从库保证业务的正常运作,同时在一定程序上减轻了主服务器的压力。

【内容】

1、主从复制原理

image.png

mysql复制过程分成三步

(1)msater将改变记录到二进制日志(binary log),这些记录过程叫做二进制日志事件,binary log events

(2)slave将master的binary log events拷贝到它的中继日志(relay log)

(3)slave重做中继日志中的事件,将改变应用到自己的数据库中。

2、准备工作

首先:将主服务器加锁,禁止主服务器进行写操作,将数据备份到从服务器

服务器加锁语句

flush table with read lock;  //加读锁

备份主服务器上的数据库SQL文件(主服务器备份到从服务器)

备份主服务器上的所有数据库

mysqldump -uroot -p --all-databases > all_db.sql

传送至指定的从服务器

scp all_db.sql mysqlback.dmsd.tech:/home/admin
 scp “文件名” “服务器地址+备份路径”

3、主从复制操作

(1)主服务器配置

查看bin-log日志是否开启:以下为开启状态

show master status

image.png

如果bin-log日志未开启,需要开启bin-log日志

在my.cnf文件中开始binglog日志并设置server_id(my.cnf路径:/etc/my.cnf)

image.png

//在mysqld下设置binlog日志
[mysqld]  
#设置binlog日志
//启动二进制日志并设置日志地址
log-bin=/var/lib/mysql/mysql-bin 
//服务器的唯一标识,主从服务器之间不能相同 
server-id=1   

 在主服务器创建授权用户

进入mysql

//user为用户名  identified为密码
create user 'prodback' identified by 'prodback';
//对新建的用户进行授权
grant replication slave on *.* to 'prodback';	
//刷新授权表,刷新后授权生效	
flush privileges;		

(2)从服务器配置

在my.cnf文件中设置server-id,路径:cd /usr/my.cnf

image.png

//在mysqld下添加配置
[mysqld] 
port=3306
//从服务器配置文件要加入的内容,设置唯一标识
server-id=2		

 在从服务器中,进入mysql,进行如下配置

change master to
//从服务器的主机
master_host='mysql.dmsd.tech',
//执行复制用户名--为主机上新建的授权用户
master_user='prodback',
//执行复制用户密码
master_password='prodback',
//二进制日志文件名
master_log_file='mysql-bin.000002',
//复制开始位置,这个位置之前的操作不会被备份到从机
master_log_pos='6041255';

启动从库同步

start slave;

(3)验证从服务器是否连接上主服务器

show slave status\G

image.png

 (4)验证主服务器和从服务器是否进行同步

image.png

 (5)从服务器执行同步后进行主服务器解锁操作

 unlock tables;
  • 18
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
MySQL Shell 是 MySQL 官方提供的一款基于 Python 和 JavaScript 开发的交互式 Shell 工具,可以用于管理 MySQL 数据库、执行 SQL 语句、监控 MySQL 实例等。在 MySQL Shell 中,可以使用内置的 ReplicationShell 插件来搭建主从复制。 以下是在 MySQL Shell 中搭建主从复制的步骤: 1. 安装 MySQL Shell 首先需要安装 MySQL Shell。可以在 MySQL 官网下载对应平台的安装包,或者使用操作系统自带的包管理器进行安装。安装完成后,可以通过以下命令启动 MySQL Shell: ``` $ mysqlsh ``` 2. 连接到主服务器 在 MySQL Shell 中,可以通过以下命令连接到主服务器: ``` mysql-js> \connect root@localhost:3306 ``` 其中,`root` 是连接到主服务器的用户名,`localhost` 是主服务器的地址,`3306` 是主服务器的端口号。连接成功后,可以使用以下命令检查主服务器的配置: ``` mysql-js> \sql mysql-sql> SHOW MASTER STATUS; ``` 该命令将显示当前主服务器的二进制日志文件和位置,用于后续配置从服务器。 3. 连接到从服务器 在 MySQL Shell 中,可以通过以下命令连接到从服务器: ``` mysql-js> \connect root@localhost:3307 ``` 其中,`root` 是连接到从服务器的用户名,`localhost` 是从服务器的地址,`3307` 是从服务器的端口号。连接成功后,可以使用以下命令配置从服务器的复制: ``` mysql-js> \sql mysql-sql> CHANGE MASTER TO MASTER_HOST='localhost', MASTER_PORT=3306, MASTER_USER='root', MASTER_PASSWORD='password', MASTER_LOG_FILE='[主服务器的二进制日志文件名]', MASTER_LOG_POS=[主服务器的二进制日志位置]; mysql-sql> START SLAVE; ``` 其中,`localhost` 和 `3306` 分别是主服务器的地址和端口号,`root` 和 `password` 分别是连接到主服务器的用户名和密码,`[主服务器的二进制日志文件名]` 和 `[主服务器的二进制日志位置]` 是主服务器当前二进制日志的文件名和位置。执行以上命令后,从服务器就会开始复制主服务器的数据。 4. 检查主从复制状态 可以使用以下命令检查主从复制状态: ``` mysql-sql> SHOW SLAVE STATUS\G ``` 如果显示 `Slave_IO_Running` 和 `Slave_SQL_Running` 都为 `YES`,则表示主从复制配置成功。 希望以上步骤对您有所帮助!如有任何疑问,欢迎随时追问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值