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 [email protected].%                            |
+---------------------------------------------------------+
| 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               |
+--------------------+

注:

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

相关推荐
清风~徐~来7 分钟前
【Qt】控件 QWidget
前端·数据库·qt
庸子38 分钟前
MySQL从入门到DBA深度学习指南
数据库·mysql·dba
cookqq44 分钟前
mongodb源码分析session执行handleRequest命令find过程
数据库·sql·mongodb·nosql
haciii1 小时前
深入理解数据库隔离级别与Spring Boot事务管理
spring boot·mysql
Bro_cat1 小时前
MongoDB 入门指南:安装、配置与 Navicat 连接教程
数据库·mongodb
不太可爱的大白1 小时前
洞悉 MySQL 查询性能:EXPLAIN 命令 type 字段详解
数据库·mysql
l1t1 小时前
DeepSeek辅助实现的DuckDB copy to自定义函数
数据库·c++·人工智能
懵逼的小黑子1 小时前
mysql修改字段类型
数据库·mysql
写bug写bug2 小时前
SQL窗口函数原理和使用
后端·sql·mysql
Tapdata2 小时前
拒绝停服,随时回退:MS SQL 到 ≈ 的无缝数据库双向迁移方案
数据库