【运维知识进阶篇】如何部署数据库主从同步?

news/2024/11/28 2:51:43/

主从复制是指将一个数据库服务器的数据通过网络连接到其他几个数据库服务器,然后在这些服务器上创建一个和主服务器数据完全相同的拷贝。当主服务器中的数据发生改变时,这些改变会异步地传播到其他从服务器上,从而实现主从服务器之间的数据同步。本篇文章给大家介绍如何实现数据库的主从同步。

目录

主从同步基本原理

实现流程

1、修改配置文件

2、将主数据库数据发送给从数据库

3、重启数据库

4、主数据库进行如下配置

5、从数据库进行如下配置

6、测试数据库主从同步


主从同步基本原理

1、主服务器记录二进制日志(binlog),将所有对数据的修改(包括更新、删除、插入等)都记录在二进制日志中。 
2、从服务器建立到主服务器的连接,并请求复制主服务器的二进制日志。主服务器收到请求后开始将新产生的二进制日志发送给从服务器。
3、从服务器读取主服务器的二进制日志,并解析其中的SQL语句;将这些SQL语句在自身执行,保持与主服务器数据的一致性。

在这整个过程中,主服务器产生的数据更改通过其提交给的二进制日志,被从服务器获取并解析成 SQL 语句来同步到每个从服务器的数据库中。从而达到了主库与备库的数据同步,实现高可用的应用服务。

实现流程

1、修改配置文件

主从都需要修改,主的server_id最小

[root@DB01 ~]# cat /etc/my.cnf.d/server.cnf
......
[mysqld]
log_bin=mysql-bin
binlog_ignore_db=mysql
server_id=1
......[root@DB02 ~]# cat /etc/my.cnf.d/server.cnf 
......
[mysqld]
log_bin=mysql-bin
binlog_ignore_db=mysql
server_id=2
......

2、将主数据库数据发送给从数据库

172.16.1.52为从数据库内网服务器

[root@DB01 ~]# mysqldump -uroot --all-databases > all.sql
[root@DB01 ~]# ls
all.sql
[root@DB01 ~]# scp all.sql 172.16.1.52:/root/[root@DB02 ~]# mysql -uroot < all.sql

3、重启数据库

[root@DB01 ~]# systemctl restart mariadb
[root@DB02 ~]# systemctl restart mariadb

4、主数据库进行如下配置

注意密码替换,172.16.1.52为从数据库内网服务器

mysql -uroot -pxxx -e "grant all privileges on *.* to ls@'%' identified by 'sss';"
#xxx为数据库密码,sss为全局用户密码
mysql -uroot -pxxx -e "grant replication slave on *.* to 'user'@'172.16.1.52' identified by 'sss';"
#xxx为数据库密码,user为给52授权的账户名,sss为给52授权的密码
mysql -uroot -pxxx -e "flush privileges;"
#xxx为数据库密码

5、从数据库进行如下配置

xxx为从数据库密码,qqq为主数据库密码,注意密码替换,172.16.1.51为主数据库内网服务器

mysql -uroot -pxxx -e "change master to master_host='172.16.1.51',master_user='user',master_password='sss';"
#xxx为数据库密码,user为51授权给52的用户名,sss为51授权给52的密码
mysql -uroot -pxxx -e "flush privileges;"
#xxx为数据库密码
mysql -uroot -pxxx -e "start slave;"
#xxx为数据库密码
mysql -uroot -pxxx -e "show slave status\G;"
#xxx为数据库密码
......Slave_IO_Running: YesSlave_SQL_Running: Yes
......

6、测试数据库主从同步

主数据库创建数据库,检查从数据库是否显示

[root@DB01 ~]# mysql -uroot -pxxx
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 19
Server version: 5.5.68-MariaDB MariaDB ServerCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)
MariaDB [(none)]> create database hehe;    #创建
Query OK, 1 row affected (0.00 sec)MariaDB [(none)]> [root@DB02 ~]# mysql -uroot -pxxx
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 5.5.68-MariaDB MariaDB ServerCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> show databases;    
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)MariaDB [(none)]> show databases;    #主数据库创建后从数据库也显示
+--------------------+
| Database           |
+--------------------+
| information_schema |
| hehe               |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)MariaDB [(none)]> 

我是koten,10年运维经验,持续分享运维干货,感谢大家的阅读和关注!


http://www.ppmy.cn/news/380414.html

相关文章

Vue让你轻松实现盒子的显示隐藏和双向数据绑定!

Vue让你轻松实现盒子的显示隐藏和双向数据绑定&#xff01; 一、Vue让你轻松实现盒子的显示隐藏和双向数据绑定&#xff01;&#xff08;一&#xff09;v-if 和 v-show1. v-show2. v-if3. 应用场景:4. 案例&#xff1a;展开折叠盒子 &#xff08;二&#xff09;v-else 和 v-els…

Matter实战系列-----3.Matter Light和Switch配网和控制实验

专有名词&#xff1a; OT-RCP&#xff1a; Open Thread Radio Co-Processor 。 Thread 无线协处理器 OTBR&#xff1a; Open Thread Board Router 。 Thread 边界路由器 chip-tool&#xff1a; Linux 应用程序。用于 Matter 协议控制 ot-ctl&#xff1a; Thread 网络控…

iOS蓝牙扫描的坑

一、后台扫描 手机作为中心模式(client): 打开后台模式中的使用蓝牙功能 TARGET→Capabilities→Background Modes→Uses Bluetooth LE accessories(勾选) 二、扫描设备方法 centralManager为蓝牙中心模块 // centralManager.scanForPeripherals(withServices: nil, opt…

windows输入模式切换

电脑ins键&#xff08;Insert Key&#xff09;位置&#xff0c; 可以通过按键实现文本输入模式的切换。一般情况下为光标模式&#xff0c;新输入的字插入到光标位置&#xff0c;原来的字相应后移。如下图&#xff0c; 另一种较少使用的模式是覆盖模式&#xff0c;光标位置新输…

Alt+Tab快捷键:使用键盘实现众多窗口情况下的多任务快速切换,提高打工效率

忙的时候同时开了很多窗口&#xff0c;每次都移到任务栏太麻烦了&#xff0c;这时用AltTab快捷键实现多任务间的快速切换&#xff0c;示意图如下&#xff1a; 打开后出现当前的窗口缩略图&#xff0c;松开Alt键&#xff0c;默认切换到下一个窗口。 使用左右可以进行选择。 另一…

每日一题面试题 - 持续更新

1、undefined和null的区别-20230614 undefined&#xff1a; &#xff08;1&#xff09;声明了一个变量&#xff0c;但没有赋值 &#xff08;2&#xff09;对象属性没有赋值 &#xff08;3&#xff09;调用函数没有提供相应的参数 &#xff08;4&#xff09;函数没有返回值&…

Windows(包括Edge)快捷键 ALT+TAB 切换效果的设置

有没有小伙伴发现&#xff0c;在 Edge 浏览器打开多个标签的时候&#xff0c;想切换回之前打开的其他应用&#xff0c;却莫名的切换回了浏览过的上一个 Edge 标签页。 这时&#xff0c;我们可以修改 windows 设置来调整到我们想要的切换效果。 *可以看到总共有4个选项&#…

Maya常用快捷键有哪些?Maya快捷键大全

Maya是有名的三维动画制作软件&#xff0c;很多小白学习Maya不知道快捷键&#xff0c;总是一个一个的点击&#xff0c;大大的影响了制作速度&#xff0c;快捷键可以提升制作效率&#xff0c;大家一定要熟记啊&#xff01;本期内容小编为大家讲解Maya常用快捷键有哪些&#xff1…