MySQL8.0.30一主两从复制与配置(一)

news2024/11/16 21:48:29

MySQL8.0.30一主两从复制与配置(一)_蜗牛杨哥的博客-CSDN博客

MySQL8.xx一主两从复制安装与配置

MySQL8.XX随未生成随机密码解决方案



本文主要对: MySQL8.xx安装与配置  的完善与补充

一: 搭建环境

    主机IP             端口             节点备注
192.168.1.100             3306           master
192.168.1.101             3306            slave
192.168.1.102             3306            slave

二: 配置主|从节点my.cnf文件

2.1: 设置主节点: server-id,这个值不能和从节点一样,一般使用机器IP

# 配置服务ID
server-id=100
# 配置二进制日志目录
log-bin=/usr/local/mysql8/mysql-8.0.30/binlog
#主从复制忽略的数据库
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
#开启主从复制的数据库
binlog-do-db=tope-pay-user
# bin log 日志格式
#STATEMENT:记录主库执行的SQL复制到从库; 调用时间函数时会导致主从数据不一致
#ROW:记录主库每一行的变化;效率低
#MIXED:修复一些主从数据不一致情况;本地变量调用还会存在问题;@@hostname
binlog_format=statement
#二进制日志自动删除/过期的天数。默认值为0,表示不自动删除
expire_logs_days=7
#跳过主从复制中遇到的所有错误或指定类型的错误
slave_skip_errors=1062

2.2: 设置主节点同步信息,不设置时,默认同步所有库的所有表

规则很多,这里只罗列几个常规的:

binlog-do-db    


 

需要同步的库名               备注
binlog-ignore-db    不需要同步的库名
replication-do-table   需要同步的表名,格式:库名.表名(test.t_table)
replication-ignore-table    不需要同步的表名,格式:库名.表名(test.t_table)

2.3:主节点上创建为从节点同步数据创建专属账号|设置权限

当然也可使用现有账号 例如账号:slave或者 replica: create user 'replica'@'%';

mysql> CREATE USER 'slave'@'%' IDENTIFIED WITH mysql_native_password BY 'mysql123456';
Query OK, 0 rows affected (0.01 sec)

mysql> GRANT REPLICATION SLAVE,replication client  ON *.* TO 'slave'@'%';
Query OK, 0 rows affected (0.00 sec)

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

2.4:配置完成后重启mysql服务器

[root@www ~]# systemctl restart mysql
[root@www ~]# systemctl status mysql
mysql.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysql.service; enabled; vendor preset: disabled)
   Active: active (running) since 二 2023-08-29 12:54:00 CST; 6s ago
     Docs: http://dev.mysql.com/doc/refman/en/using-systemd.html
 Main PID: 4550 (mysqld)
    Tasks: 39
   CGroup: /system.slice/mysql.service
           └─4550 /usr/local/mysql8/mysql-8.0.30/bin/mysqld --defaults-file=/etc/my.cnf

8月 29 12:54:00 www.yhchange.com systemd[1]: Started MySQL Server.
 

2.4: 查看master节点的偏移量|二进制文件名

mysql> show master status;
+---------------+----------+---------------+--------------------------+-------------------+
| File          | Position | Binlog_Do_DB  | Binlog_Ignore_DB         | Executed_Gtid_Set |
+---------------+----------+---------------+--------------------------+-------------------+
| binlog.000001 |      157 | tope-pay-user | mysql,information_schema |                   |
+---------------+----------+---------------+--------------------------+-------------------+
1 row in set (0.00 sec)


2.5: 配置从服务器的my.cnf文件

 #192.168.1.101 节点

# 服务id
server-id=101
#启用中继日志
relay-log=mysql-relay


#192.168.1.102 节点

# 服务id
server-id=102
#启用中继日志
relay-log=mysql-relay

2.6: 分别重启两台从服务器

[root@www ~]# systemctl restart mysql
[root@www ~]# systemctl status mysql
mysql.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysql.service; enabled; vendor preset: disabled)
   Active: active (running) since 二 2023-08-29 13:12:37 CST; 18s ago
     Docs: http://dev.mysql.com/doc/refman/en/using-systemd.html
 Main PID: 4093 (mysqld)
    Tasks: 39
   CGroup: /system.slice/mysql.service
           └─4093 /usr/local/mysql8/mysql-8.0.30/bin/mysqld --defaults-file=/etc/my.cnf

8月 29 13:12:37 www.yhchange.com systemd[1]: Started MySQL Server.
 

两台全新的从服务数据库状况:

[root@www ~]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.30 MySQL Community Server - GPL

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.02 sec)
 


2.7: 验证server-id配置是否成功

master:

mysql> show variables like '%server_id%';
+----------------+-------+
| Variable_name  | Value |
+----------------+-------+
| server_id      | 100   |
| server_id_bits | 32    |
+----------------+-------+
2 rows in set (0.06 sec)


slave:

mysql> show variables like '%server_id%';
+----------------+-------+
| Variable_name  | Value |
+----------------+-------+
| server_id      | 101   |
| server_id_bits | 32    |
+----------------+-------+
2 rows in set (0.04 sec)


mysql> show variables like '%server_id%';
+----------------+-------+
| Variable_name  | Value |
+----------------+-------+
| server_id      | 102   |
| server_id_bits | 32    |
+----------------+-------+
2 rows in set (0.02 sec)



 


三: 分别在从服务器同步主服务配置

3.1:在101与102从服务器节点执行如下命令

mysql> change master to master_host='192.168.1.100',master_user='slave',master_password='mysql123456',master_log_file='binlog.000001',master_log_pos=157;


Query OK, 0 rows affected, 8 warnings (0.03 sec)


注意这里的

master_host为主服务器的ip

master_user为连接主服务器的用户名

master_password为连接主服务器的密码

master_log_file为要同步的日志文件file,即对应上面主服务器查看时的File字段

master_log_pos为要同步日志文件的位置,即对应上面主服务器查看时的Position字段
 

3.2: 从服务上开启同步|slave 进程

mysql>  start slave;
Query OK, 0 rows affected, 1 warning (0.01 sec)
 


3.3: 查看 slave 状态 

mysql>   show slave status;
+----------------------------------+---------------+-------------+-------------+---------------+-----------------+---------------------+--------------------+---------------+-----------------------+------------------+-------------------+-----------------+---------------------+--------------------+------------------------+-------------------------+-----------------------------+------------+------------+--------------+---------------------+-----------------+-----------------+----------------+---------------+--------------------+--------------------+--------------------+-----------------+-------------------+----------------+-----------------------+-------------------------------+---------------+---------------+----------------+----------------+-----------------------------+------------------+--------------------------------------+-------------------------+-----------+---------------------+----------------------------------------------------------+--------------------+-------------+-------------------------+--------------------------+----------------+--------------------+--------------------+-------------------+---------------+----------------------+--------------+--------------------+------------------------+-----------------------+-------------------+
| Slave_IO_State                   | Master_Host   | Master_User | Master_Port | Connect_Retry | Master_Log_File | Read_Master_Log_Pos | Relay_Log_File     | Relay_Log_Pos | Relay_Master_Log_File | Slave_IO_Running | Slave_SQL_Running | Replicate_Do_DB | Replicate_Ignore_DB | Replicate_Do_Table | Replicate_Ignore_Table | Replicate_Wild_Do_Table | Replicate_Wild_Ignore_Table | Last_Errno | Last_Error | Skip_Counter | Exec_Master_Log_Pos | Relay_Log_Space | Until_Condition | Until_Log_File | Until_Log_Pos | Master_SSL_Allowed | Master_SSL_CA_File | Master_SSL_CA_Path | Master_SSL_Cert | Master_SSL_Cipher | Master_SSL_Key | Seconds_Behind_Master | Master_SSL_Verify_Server_Cert | Last_IO_Errno | Last_IO_Error | Last_SQL_Errno | Last_SQL_Error | Replicate_Ignore_Server_Ids | Master_Server_Id | Master_UUID                          | Master_Info_File        | SQL_Delay | SQL_Remaining_Delay | Slave_SQL_Running_State                                  | Master_Retry_Count | Master_Bind | Last_IO_Error_Timestamp | Last_SQL_Error_Timestamp | Master_SSL_Crl | Master_SSL_Crlpath | Retrieved_Gtid_Set | Executed_Gtid_Set | Auto_Position | Replicate_Rewrite_DB | Channel_Name | Master_TLS_Version | Master_public_key_path | Get_master_public_key | Network_Namespace |
+----------------------------------+---------------+-------------+-------------+---------------+-----------------+---------------------+--------------------+---------------+-----------------------+------------------+-------------------+-----------------+---------------------+--------------------+------------------------+-------------------------+-----------------------------+------------+------------+--------------+---------------------+-----------------+-----------------+----------------+---------------+--------------------+--------------------+--------------------+-----------------+-------------------+----------------+-----------------------+-------------------------------+---------------+---------------+----------------+----------------+-----------------------------+------------------+--------------------------------------+-------------------------+-----------+---------------------+----------------------------------------------------------+--------------------+-------------+-------------------------+--------------------------+----------------+--------------------+--------------------+-------------------+---------------+----------------------+--------------+--------------------+------------------------+-----------------------+-------------------+
| Waiting for source to send event | 192.168.1.100 | slave       |        3306 |            60 | binlog.000001   |                 157 | mysql-relay.000002 |           323 | binlog.000001         | Yes              | Yes               |                 |                     |                    |                        |                         |                             |          0 |            |            0 |                 157 |             529 | None            |                |             0 | No                 |                    |                    |                 |                   |                |                     0 | No                            |             0 |               |              0 |                |                             |              100 | d25ed6c6-3b31-11ee-8765-000c29dfccdb | mysql.slave_master_info |         0 |                NULL | Replica has read all relay log; waiting for more updates |              86400 |             |                         |                          |                |                    |                    |                   |             0 |                      |              |                    |                        |                     0 |                   |
+----------------------------------+---------------+-------------+-------------+---------------+-----------------+---------------------+--------------------+---------------+-----------------------+------------------+-------------------+-----------------+---------------------+--------------------+------------------------+-------------------------+-----------------------------+------------+------------+--------------+---------------------+-----------------+-----------------+----------------+---------------+--------------------+--------------------+--------------------+-----------------+-------------------+----------------+-----------------------+-------------------------------+---------------+---------------+----------------+----------------+-----------------------------+------------------+--------------------------------------+-------------------------+-----------+---------------------+----------------------------------------------------------+--------------------+-------------+-------------------------+--------------------------+----------------+--------------------+--------------------+-------------------+---------------+----------------------+--------------+--------------------+------------------------+-----------------------+-------------------+
1 row in set, 1 warning (0.00 sec)

mysql>  unlock tables;
Query OK, 0 rows affected (0.00 sec)
看见      Slave_IO_Running: Yes        Slave_SQL_Running: Yes       都为Yes则代表配置成功

四: 测试一波

4.1:在master节点创建存储过程:

delimiter $$
CREATE PROCEDURE pro_sys_index_sys_employer(num int)
BEGIN
  DECLARE count int  DEFAULT 0 ; -- 计数
    DECLARE max int ; -- 插入数据条数 num 记录条数
    SET max = num  ;
    -- 开始执行循环
    WHILE count < max  DO
    start transaction;
        INSERT INTO `sys_employer` ( `empno`, `ename`,`ejob`, `mgr`, `birthday`, `salary` , `compony`, `deptno`)
        VALUES    (( FLOOR(RAND()*805300 + RAND()*400530)),CONCAT('许总',(LAST_INSERT_ID()+1)),'恒大许老板',FLOOR(RAND()*100 + 205300),(date_add('1836-01-01', interval rand() * 31 day)),(RAND()*6530 + rand(1) * 10), CONCAT('北京市海淀区中关村创新文化交流中心',(LAST_INSERT_ID()+1)),(FLOOR(RAND()*300 + 6700)));             
    commit;
    SET count = count + 1;
    END WHILE;
END$$
delimiter ;

看看slave节点是否同步;先确认下从节点数据库数据为空;不未空则先删除

# 调用存储过程
call pro_sys_index_sys_employer(600);

4.2: 执行master节点后,查看从节点数据是否同步

 有数据,说明同步成功;

 看看数据条数:与预期符合

4.3: 在主节点创建sys_user表;  看看是否同步到slave节点

CREATE TABLE `sys_user` (
  `userId` bigint NOT NULL AUTO_INCREMENT,
  `username` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`userId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

 slave节点:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/947341.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Gazebo打不开,报错process has died[pid 7798, exit code1]解决办法

Gazebo打不开&#xff0c;报错process has died[pid 7798, exit code1]&#xff0c;如下图所示&#xff1a; 原因&#xff1a;可能是由于有gazebo进程没有终止&#xff0c;所以无法打开。 解决办法&#xff1a;依次执行下面两个命令 killall gzserver killall gzclient问题解…

算法通关村-----位运算的规则

1 数字在计算机中的表示 机器数&#xff1a;一个数在计算机中的二进制表示 真值&#xff1a;带符号位的机器数对应的真正数值 机器数可分为原码、反码和补码。 原码&#xff1a;符号位加上真值的绝对值 反码&#xff1a;正数的反码是其本身&#xff0c;负数的反码的在其原…

基于ssm医院在线挂号预约系统源码和论文

基于ssm医院在线挂号预约系统源码和论文072 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 课题研究的目的及意义&#xff1a; 专家号难求&#xff0c;是医院现场挂号存在的主要问题之一&#xff0c;每一名专…

【算法专题突破】双指针 - 有效三角形的个数(5)

目录 1. 题目解析 2. 算法原理 3. 代码编写 写在最后&#xff1a; 1. 题目解析 题目链接&#xff1a;611. 有效三角形的个数 - 力扣&#xff08;Leetcode&#xff09; 我们可以根据示例1来理解这一道题目&#xff0c; 他说数组里面的数可以组成三角形三条边的个数&#x…

maven的依赖下载不下来的几种解决方法

前言 每次部署测试环境&#xff0c;从代码库拉取代码&#xff0c;都会出现缺少包的情况。然后找开发一通调试&#xff0c;到处拷包。 方案一&#xff1a;pom文件注释/取消注释 注释掉pom.xml里的报红色的依赖&#xff08;同时可以把本地maven库repo里对应的包删除&#xff09;&…

ealtek高清晰音频管理器(realtek高清晰音频管理器怎么设置win10)

本文为大家介绍realtek高清晰音频管理器(realtek高清晰音频管理器怎么设置win10)&#xff0c;下面和小编一起看看详细内容吧。 我们都使用电脑来听音乐、看电影或者进行其他操作&#xff0c;但是如果我们觉得电脑产生的音效不够立体&#xff0c;我们就会想要去Realtek来设置音…

【Maven】如何发现,定位,解决依赖冲突

发现冲突 运行的时候可能报出错误xx类找不到xx方法&#xff0c;xx类找不到&#xff0c;很有可能就是冲突导致的。 定位冲突根因 通过idea maven插件 idea安装插件&#xff0c;maven helper 比如我有两个依赖&#xff0c;guava和findbug。 他们都用到了jsr305&#xff0c;…

jvm 新生代的区域划分

虚拟机将内存分为一块较大的 Eden 空间和两块较小的 Survivor 空间&#xff0c;每次分配内存只使用 Eden 和其中一块 Survivor。发生垃圾收集时&#xff0c;将 Eden 和 Survivor 中仍然存活的对象一次性复制到另外一块 Survivor 空间上&#xff0c;然后直接清理掉 Eden 和已用过…

Matlab图像处理-垂直镜像

垂直镜像 图像的垂直镜像操作是以原图像的水平中轴线为中心&#xff0c;将图像分为上下两部分进行对称变换。 设原始图像的宽为w&#xff0c;高为h&#xff0c;原始图像中的点为(&#x1d465;0,&#x1d466;0)(x_0,y_0)&#xff0c;对称变换后的点为(&#x1d465;1,&#…

正点原子I.MX6ull应用编程 feertype库使用时找不到字体文件

记录自己学习linux应用编程的踩坑过程&#xff1a; 在正点原子linux应用编程文档中对freetype库使用的代码中&#xff0c;运行起来需要输入字体文件的路径&#xff0c;按文档中的路径/usr/share/fonts/font.ttf下面并没有这个字体文件。 这个时候&#xff0c;我们就直接打开自…

入海排污口水质自动监测系统,助力把好入河入海“闸门”

随着经济社会的不断发展&#xff0c;污水的排放强度不断加大&#xff0c;大量的污水排入河流、湖泊和海洋中&#xff0c;造成了水体污染&#xff0c;严重影响着我国的用水安全、公众健康、经济发展与社会稳定。入河入海排污口是污染物进入河流和海洋的最后关口&#xff0c;也是…

IP 地址追踪工具

IP 地址跟踪工具是一种网络实用程序&#xff0c;允许您扫描、跟踪和获取详细信息&#xff0c;例如 IP 地址的 MAC 和接口 ID。IP 跟踪解决方案通过使用不同的网络扫描协议来检查网络地址空间来收集这些详细信息。一些高级 IP 地址跟踪器软件&#xff08;如 OpUtils&#xff09;…

Dataset的简单使用

Pytorch 给我们提供了一个方法&#xff0c;方便我们加载数据&#xff0c;我们可以使用这个框架&#xff0c;去加载我们的数据。看下伪代码&#xff1a; # # # Input pipeline for custom dataset # # ## You should build your custom datas…

中国资产深夜狂飙,多股涨超10%

刚刚&#xff0c;中国资产集体狂飙。 8月29日晚间&#xff0c;美股市场开盘后&#xff0c;中概股集体大涨&#xff0c;纳斯达克中国金龙指数盘中一度大涨超4%&#xff0c;老虎证券盘中一度暴涨超24%&#xff0c;拼多多涨幅超18%&#xff0c;贝壳、每日优鲜、雾芯科技等多股涨超…

Maven - 使用maven-release-plugin规范化版本发布

文章目录 Maven Release plugin – IntroductionMaven Release plugin – Plugin DocumentationMaven Release plugin – Usage实战案例 Maven Release plugin – Introduction Maven Release Plugin&#xff08;Maven 发布插件&#xff09;是一个用于帮助在Maven项目中执行版…

BFS4专题 迷宫最短路径(输出路径)

题目&#xff1a;样例&#xff1a; 输入 3 3 0 1 0 0 0 0 0 1 0 输出 1 1 2 1 2 2 2 3 3 3 思路&#xff1a; 这里刚开始看的时候会可能有点复杂了&#xff0c;因为是递归。 但是只要理解了含义&#xff0c;脑袋里模拟一下还是可以理解的。首先还是 之前那样 BFS 常规搜索 …

深圳寄墨西哥专线国际物流详解

随着全球贸易的不断发展&#xff0c;国际物流服务的需求也越来越大。深圳这座中国的特区城市&#xff0c;不仅是全球电子产品供应链的重要节点&#xff0c;也是国际物流服务的中心之一。对于那些需要将物品从深圳邮寄到墨西哥的人来说&#xff0c;深圳邮寄到墨西哥专线的国际物…

【JavaEE进阶】拦截器与统一功能处理

文章目录 一. 用户登录权限效验1. 最初用户登录验证2. Spring AOP 用户统一登录的验证3. Spring拦截器3.1 自定义拦截器3.2 将自定义拦截器设置到当前的项目中 4. 拦截器实现的原理 二. 统一的异常处理三. 统一数据返回格式1. 统一数据返回格式的优点2. 统一数据返回格式的实现…

vim编辑器的基本使用复习

之前写过vim的使用&#xff0c;还不是太熟悉&#xff1b;复习一下&#xff0c; 在MSYS2下使用vim&#xff1b;先安装&#xff1b;单安装vim的话非常快&#xff1b; 输入 vim hello.c&#xff0c;进入文件hello.c的编辑&#xff1b;刚进入时是在vim的命令模式&#xff0c;不能输…

计算机视觉主要任务

计算机视觉&#xff1a;使用计算机及相关设备对生物视觉的一种模拟。 主要包含6大任务&#xff0c;图像分类&#xff0c;目标检测&#xff0c;目标跟踪&#xff0c;语义分割&#xff0c;实例分割&#xff0c;影像重构。 图像分类&#xff1a;根据图像信息中所反映的不同特征&am…