详解Mysql主从同步配置实战

发布时间 - 2026-01-11 00:09:04    点击率:

1、Introduction

之前写过一篇文章:Mysql主从同步的原理。

相信看过这篇文章的童鞋,都摩拳擦掌,跃跃一试了吧?

今天我们就来一次mysql主从同步实战!

2、环境说明

os:ubuntu16.04

mysql:5.7.17

下面的实战演练,都是基于上面的环境。当然,其他环境也大同小异。

3、进入实战

工具

2台机器:

master IP:192.168.33.22

slave  IP:192.168.33.33

master机器上的操作

1、更改配置文件

我们找到文件 /etc/mysql/mysql.conf.d/mysqld.cnf

配置如下:

bind-address = 192.168.33.22 #your master ip
server-id = 1 #在master-slave架构中,每台机器节点都需要有唯一的server-id
log_bin = /var/log/mysql/mysql-bin.log #开启binlog

2、重启mysql,以使配置文件生效。

sudo systemctl restart mysql

3、创建主从同步的mysql user。

$ mysql -u root -p
Password:

##创建slave1用户,并指定该用户只能在主机192.168.33.33上登录。
mysql> CREATE USER 'slave1'@'192.168.33.33' IDENTIFIED BY 'slavepass';
Query OK, 0 rows affected (0.00 sec)

##为slave1赋予REPLICATION SLAVE权限。
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'192.168.33.33';
Query OK, 0 rows affected (0.00 sec)

4、为MYSQL加读锁

为了主库与从库的数据保持一致,我们先为mysql加入读锁,使其变为只读。

mysql> FLUSH TABLES WITH READ LOCK;
Query OK, 0 rows affected (0.00 sec)

5、记录下来MASTER REPLICATION LOG 的位置

该信息稍后会用到。

mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+-------------------+
| File    | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |  613 |    |     |     |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

6、将master DB中现有的数据信息导出

$ mysqldump -u root -p --all-databases --master-data > dbdump.sql

7、接触master DB的读锁

mysql> UNLOCK TABLES;

8、将步骤6中的dbdump.sql文件copy到slave

scp dbdump.sql ubuntu@192.168.33.33:/home/ubuntu

slave机器上的操作

1、更改配置文件

我们找到文件 /etc/mysql/mysql.conf.d/mysqld.cnf

更改配置如下:

bind-address = 192.168.33.33 #your slave ip
server-id = 2 #master-slave结构中,唯一的server-id
log_bin = /var/log/mysql/mysql-bin.log #开启binlog

2、重启mysql,以使配置文件生效

sudo systemctl restart mysql

3、导入从master DB。 导出的dbdump.sql文件,以使master-slave数据一致

$ mysql -u root -p < /home/ubuntu/dbdump.sql

4、使slave与master建立连接,从而同步

$ mysql -u root -p
Password:

mysql> STOP SLAVE;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> CHANGE MASTER TO
 -> MASTER_HOST='192.168.33.22',
 -> MASTER_USER='slave1',
 -> MASTER_PASSWORD='slavepass',
 -> MASTER_LOG_FILE='mysql-bin.000001',
 -> MASTER_LOG_POS=613;
Query OK, 0 rows affected, 2 warnings (0.01 sec)

mysql> START SLAVE;
Query OK, 0 rows affected (0.00 sec)

MASTER_LOG_FILE='mysql-bin.000001'与MASTER_LOG_POS=613的值,是从上面的 SHOW MASTER STATUS 得到的。

经过如此设置之后,就可以进行master-slave同步了~

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Mysql主从同步  # mysql主从同步原理  # mysql  # 主从同步配置  # Mysql主从同步的实现原理  # Mysql主从同步备份策略分享  # mysql主从同步复制错误解决一例  # MYSQL主从数据库同步备份配置的方法  # MySQL主从同步(复制)操作实战记录  # 配置文件  # 重启  # 都是  # 摩拳擦掌  # 是从  # 机器上  # 使其  # 大同小异  # 这篇文章  # 就来  # 该用户  # 试了  # 写过  # 一篇文章  # 稍后  # 大家多多  # 每台  # 就可以  # 童鞋  # 跃跃 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  Linux后台任务运行方法_nohup与&使用技巧【技巧】  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  详解Android图表 MPAndroidChart折线图  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  大同网页,大同瑞慈医院官网?  jQuery 常见小例汇总  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  Python文件异常处理策略_健壮性说明【指导】  Laravel中的withCount方法怎么高效统计关联模型数量  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  香港服务器部署网站为何提示未备案?  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  大学网站设计制作软件有哪些,如何将网站制作成自己app?  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  如何确认建站备案号应放置的具体位置?  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  如何有效防御Web建站篡改攻击?  Laravel用户密码怎么加密_Laravel Hash门面使用教程  长沙企业网站制作哪家好,长沙水业集团官方网站?  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  打造顶配客厅影院,这份100寸电视推荐名单请查收  jquery插件bootstrapValidator表单验证详解  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  如何在建站之星网店版论坛获取技术支持?  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  JavaScript如何实现倒计时_时间函数如何精确控制  iOS中将个别页面强制横屏其他页面竖屏  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  米侠浏览器网页背景异常怎么办 米侠显示修复  如何用AWS免费套餐快速搭建高效网站?  Python进程池调度策略_任务分发说明【指导】  php485函数参数是什么意思_php485各参数详细说明【介绍】  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  Python文本处理实践_日志清洗解析【指导】  C语言设计一个闪闪的圣诞树  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  Android GridView 滑动条设置一直显示状态(推荐)  Firefox Developer Edition开发者版本入口  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  简单实现jsp分页  清除minerd进程的简单方法