MySQL主从复制环境部署

文章目录

MySQL主从复制

什么是主从复制:

通过将MySQL的某一台主机(master)的数据复制到其他主机(slaves)上,并重新执行一遍来执行

复制的这一过程叫做主从复制。

为什么需要主从复制:

通过主从复制可以实现后续的读写分离,部署高可用架构等打下基础。

配置文件修改-主:

bash 复制代码
[root@rhel7 ~]# vim /etc/my.cnf
[mysqld]
log_bin=mysql-bin
server_id=138
#server_id 必须配置且全网唯一。
#若只开启二进制日志不配置server_id,服务将无法重启。

时间同步:

bash 复制代码
[root@rhel7 ~]# ntpdate ntp1.aliyun.com
[root@node2 ~]# ntpdate ntp1.aliyun.com

重启服务-主:

bash 复制代码
[root@rhel7 ~]# systemctl restart mysqld

创建同步用户:

mysql 复制代码
mysql> grant replication slave on *.* to 'bak'@'192.168.110.%' identified by 'Redhat@123';
#权限如下
mysql> show grants for 'bak'@'192.168.110.%';
+---------------------------------------------------------+
| Grants for bak@192.168.110.%                            |
+---------------------------------------------------------+
| GRANT REPLICATION SLAVE ON *.* TO 'bak'@'192.168.110.%' |
+---------------------------------------------------------+

查看主上的二进制文件名及位置:

mysql 复制代码
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 |      154 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+

配置-从:

mysql 复制代码
[mysqld]
server_id=140
mysql 复制代码
mysql> change master to
    -> master_host='192.168.110.138',
    -> master_user='bak',
    -> master_password='Redhat@123',
    -> master_log_file='mysql-bin.000002',
    -> master_log_pos=154;

测试:

mysql 复制代码
mysql> start slave;
mysql> show slave status\G;

#若以下两个为yes则代表成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
#主
mysql> create database test;
#从
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+

注:

在进行同步前,最好使两边数据库内容保持一致、版本号尽量一致、操作系统一致,不然可能出现连接不上的情况。

相关推荐
cfm_29149 分钟前
基于Binlog实现不停机数据库平滑迁移技术
运维·数据库·架构
Full Stack Developme9 分钟前
SQL 注入 的历史及设计工作原理
数据库·sql
Tisfy11 分钟前
Codex:通过编辑配置文件添加带Bearer的自定义MCP
数据库·大模型·agent·codex·mcp
哈__43 分钟前
面向AI智能体的数据库专业技能包:将DBA工程经验封装为可调用能力
数据库·人工智能·dba
阿坤带你走近大数据1 小时前
SQL里where后面的1=1是干嘛的,走的是什么索引
数据库·sql
阿坤带你走近大数据1 小时前
SQL的执行顺序和书写顺序的介绍
数据库·sql·oracle
Poo_Chai1 小时前
QT emit信号后完整处理流程,包括槽函数响应流程
java·开发语言·数据库
这个DBA有点耶2 小时前
从DBA到数据架构师(五):数据架构演进中的技术债务管理
数据库·程序人生·云原生·架构·dba·数据库管理员
Bruce_Liuxiaowei3 小时前
基于微步在线威胁情报的公网 IP 攻击迹象监测:threatbook_query 脚本全解析与 BruceSec 平台整合实践
数据库·tcp/ip·安全·网络安全·智能体
码农颜3 小时前
5.6.2 ⾏级锁死锁
数据库·sql·oracle