首页 > 数据库 >mysql8.4:搭建主从复制(mysql 8.4.1)

mysql8.4:搭建主从复制(mysql 8.4.1)

时间:2024-09-24 17:47:44浏览次数:9  
标签:主库 主从复制 LOG mysql8.4 SOURCE sec mysql backup

一,主库上:修改配置文件

1,配置文件:

/etc/my.cnf中,增加:

server-id = 1

说明:无需指明log bin的值,因为它的默认值就是打开的,

SHOW VARIABLES LIKE 'log_bin';

返回:

说明:主库的server-id要和从库的server-id区分开,一般主库用1,其他各从库用2及以后的数字

二,主库上:创建备份账号

1,创建一个同步账号,并授权:

mysql> create user 'backup'@'121.122.123.134' identified by 'backuppassword';
Query OK, 0 rows affected (0.00 sec)

mysql> grant replication slave on *.* to [email protected];
Query OK, 0 rows affected (0.00 sec)

 

2,检查创建是否成功?

mysql> select * from mysql.user where User='backup';

 

3,检查当前用户获得的授权

复制代码
mysql> show grants for [email protected];
+--------------------------------------------------------------+
| Grants for [email protected]                            |
+--------------------------------------------------------------+
| GRANT REPLICATION SLAVE ON *.* TO `backup`@`121.122.123.134` |
+--------------------------------------------------------------+
1 row in set (0.00 sec)
复制代码

4,使新建账号生效

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

三,主库上:导出指定库:

1,在mysql中锁定表并查看当前位置:

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

mysql> SHOW BINARY LOG STATUS;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 |      158 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

2,导出数据表:

[root@web mysql]# mysqldump -u root -p mybase > mybase_all.sql
Enter password:

3,解锁:

mysql> UNLOCK TABLES;
Query OK, 0 rows affected (0.00 sec)

mysql> exit;
Bye

四,从库上: 配置文件

[root@os3 ~]# vi /etc/my.cnf

主要配置以下各项:

server-id = 2
replicate-do-db = 要复制的库名
read_only         = 1

五,复制备份的sql文件到从库服务器,导入到数据库

[root@backup ~]# mysql -u root -p my_base < my_base_all.sql
Enter password: 

六,在从库上启动复制:

1,执行sql对复制进行设置

CHANGE REPLICATION SOURCE TO SOURCE_HOST='主库ip', SOURCE_USER='主库上复制用户', SOURCE_PASSWORD='主库上复制用户的密码', 
                   SOURCE_PORT=3306, SOURCE_LOG_FILE='mysql-bin.000002', SOURCE_LOG_POS=158, SOURCE_SSL=1;

2,启动复制:

START replica;

3,在从库上查看复制状态:

SHOW replica STATUS;

 

七,需要注意的地方:

1,show master status; 不能用了

# mysql 8.4版本前使用这条命令查看
show master status; 

# MySQL 8.4版本后使用这条命令查看
SHOW BINARY LOG STATUS;

2,change master to不能用了

# MSQL 8.23前
CHANGE MASTER TO MASTER_HOST='192.168.6.133', MASTER_USER='remote', MASTER_PASSWORD='yourpassword', MASTER_LOG_FILE='binlog.000003', MASTER_LOG_POS=158;
​
# MSQL 8.23后
CHANGE REPLICATION SOURCE TO SOURCE_HOST='192.168.6.133', SOURCE_USER='remote', SOURCE_PASSWORD='yourpassword', SOURCE_LOG_FILE='binlog.000003', SOURCE_LOG_POS=158;
​
CHANGE REPLICATION SOURCE TO SOURCE_HOST='192.168.6.136', SOURCE_USER='remote', SOURCE_PASSWORD='yourpassword', SOURCE_LOG_FILE='binlog.000004', SOURCE_LOG_POS=158,GET_SOURCE_PUBLIC_KEY=1;

3,start slave不能用了

# 开启同步
start replica ; #8.0.22之后 
start slave ; #8.0.22之前

4,show slave status不能用了

# 查看状态,\G表示行转列,便于查看
show replica status\G ; #8.0.22之后 
show slave status\G ; #8.0.22之前

 

标签:主库,主从复制,LOG,mysql8.4,SOURCE,sec,mysql,backup
From: https://www.cnblogs.com/architectforest/p/18429705

相关文章

  • MySql Having 用法
    HAVING子句在MySQL中的用法主要用于对通过GROUPBY子句分组后的数据进行条件过滤。它与WHERE子句类似,但关键区别在于HAVING子句可以包含聚合函数(如COUNT()、MAX()、MIN()、SUM()、AVG()等),而WHERE子句在数据分组之前执行,不能包含聚合函数。下面是一些HAVING子句的具体用法示例:示......
  • 大数据-140 - ClickHouse 集群 表引擎详解5 - MergeTree CollapsingMergeTree 与其他
    点一下关注吧!!!非常感谢!!持续更新!!!目前已经更新到了:Hadoop(已更完)HDFS(已更完)MapReduce(已更完)Hive(已更完)Flume(已更完)Sqoop(已更完)Zookeeper(已更完)HBase(已更完)Redis(已更完)Kafka(已更完)Spark(已更完)Flink(已更完)ClickHouse(正在更新···)章节内容上节我们完成了如下的内容:MergeTree实测案例Re......
  • Mysql知识库【总结】
    MySQL是一种关系型数据库管理系统(RDBMS),其底层原理可以简单概括为以下几个方面:-存储引擎:MySQL支持多种存储引擎,如MyISAM、InnoDB、Memory等。每种存储引擎的实现方式不同,它们各自的特点和使用场景也不同。例如,MyISAM存储引擎适合于读多写少的场景,而InnoDB存储引擎则适合于......
  • Doris MySQL SQL语法兼容性说明
    MySQL兼容性Doris是高度兼容MySQL语法,支持标准SQL。但是Doris与MySQL还是有很多不同的地方,下面给出了他们的差异点介绍。数据类型数字类型类型MySQLDorisBoolean-支持-范围:0代表false,1代表true-支持-关键字:Boolean-范围:0代表false,1代表trueBit......
  • 55 mysql 的登录认证流程
    前言这里我们来看一下 mysql 的认证的流程 我们这里仅仅看 我们最常见的一个认证的处理流程我们经常会登录的时候 碰到各种异常信息  认证失败的大体流程大概的流程是这样 客户端和服务器建立连接之后, 服务器向客户端发送 salt然后 客户端根据salt 将客户端传入的密......
  • MySQL GROUP BY 分区大小写问题解析
    在数据库操作中,GROUPBY是一个常用的SQL语句,用于根据一个或多个列的值对结果集进行分组。然而,在使用MySQL时,你可能会遇到一个常见问题:大小写敏感性。本文将探讨MySQL中GROUPBY的大小写敏感性问题,并提供一些解决方案。什么是大小写敏感性?在计算机科学中,大小写敏感性是指......
  • MySQL深度探索:掌握触发器自动化与精细用户权限管理,提升数据库效能与安全
     作者简介:我是团团儿,是一名专注于云计算领域的专业创作者,感谢大家的关注 座右铭:   云端筑梦,数据为翼,探索无限可能,引领云计算新纪元 个人主页:团儿.-CSDN博客目录前言:触发器(Triggers):用户权限(UserPermissions):一.触发器1.MySQL触发器简介2.引发触发器执行的事件,......
  • docker 配置代理访问Error response from daemon: Get “https://index.docker.io/v1/
    一、前言报错原因,docker访问不到外网。并且docker不能直接依赖操作系统环境的proxy,因此需要独立配置docker的proxy才能访问外网。问题描述dockersearchmysql出现以下报错:[root@localhost~]#dockersearchmysqlErrorresponsefromdaemon:Get"https://index.docke......
  • MySQL 函数的使用
    目录函数时间日期函数:字符串函数数学函数其他函数函数时间日期函数:所有的时间日期函数都是从完整的时间日期开始,根据需求进行截断;例如需要时间,则只显示时间部分;需要日期就显示日期部分;获得年月日:selectcurrent_date();+----------------+|current_......
  • pbootcms网站是使用sqlite数据库好还是使用mysql数据库好
    选择在PbootCMS网站上使用SQLite数据库还是MySQL数据库取决于几个因素,包括但不限于网站规模、预期的访问量、并发需求以及维护成本等。以下是两者的对比:SQLite架构:SQLite是一种嵌入式的关系型数据库管理系统,它不需要单独的服务器进程或系统。适用场景:适用于小型应用程序,访问量......