ubuntu mysql 8.0.42 基于二进制日志文件位置和GTID主从复制配置

目录

1 操作系统信息

2 MySql数据库版本

3 主机列表

4 MySQL服务器都安装依赖

5 主库服务器安装mysql软件步骤:

6 从服务器安装mysql软件步骤

7 基于二进制日志文件位置的主从复制配置

8 使用全局事务标识符进行主从复制(GTID)

9 部署过程遇到问题


1 操作系统信息


root@u24-mysql-51:/mysql# cat /etc/issue
Ubuntu 24.04.2 LTS \n \l

2 MySql数据库版本


mysql-8.0.42-linux-glibc2.28-x86_64.tar.xz

3 主机列表


192.168.254.51  #主库
192.168.254.52  #从库

4 MySQL服务器都安装依赖


apt-get install libaio1


5 主库服务器安装mysql软件步骤:


tar -xf mysql-8.0.42-linux-glibc2.28-x86_64.tar.xz -C /usr/local
cd /usr/local
mv mysql-8.0.42-linux-glibc2.28-x86_64 mysql-8.0.42

#创建用户和组
groudadd mysql
useradd -g mysql -s /sbin/nologin mysql

#给MySql软件目录授权
chown -r mysql:mysql /usr/local/mysql-8.0.42

#编写my.cnf配置文件
root@u24-mysql-51:~# cat /etc/my.cnf 
[client]
socket = /mysql/data/mysql.sock

[mysqld]
basedir = /usr/local/mysql-8.0.42
datadir = /mysql/data
user = mysql
port = 3306
socket = /mysql/data/mysql.sock
log_error = /mysql/data/mysqld.err
log_timestamps = system

log-bin = mysql-bin
server-id = 51


#初始化数据库
mkdir /mysql/data -p
chown -R mysql:mysql /mysql/data
/usr/local/mysql-8.0.42/bin/mysqld --defaults-file=/etc/my.cnf --initialize


#配置启动文件systemd
root@u24-mysql-52:/mysql/data# cat /lib/systemd/system/mysql.service 
[Unit]
Description=MySQL server
Documentation=man:mysql(8) 
After=network.target

[Service]
User=mysql
Group=mysql
Type=forking
PIDFile=/mysql/data/mysqld.pid
TimeoutSec=0
ExecStart=/usr/local/mysql-8.0.42/bin/mysqld --defaults-file=/etc/my.cnf --pid-file=/mysql/data/mysqld.pid --daemonize $MYSQLD_OTPS
EnvironmentFile=-/etc/sysconfig/mysql
LimitNOFILE=65535
Restart=on-failure
RestartPreventExitStatus=1
PrivateTmp=False

[Install]
WantedBy=multi-user.target
Alias=mysqld.service


#启动MySQL
systemctl start mysql
systemctl enable mysql


#登录并修改密码
root@u24-mysql-51:~# grep password /mysql/data/mysqld.err 
2025-05-28T23:13:58.538997+08:00 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: shAuAVU%f5a-

/usr/local/mysql-8.0.42/bin/mysql -uroot -p'shAuAVU%f5a-'
mysql>alter user user() identified by '123456';

#配置环境变量
echo 'export PATH=$PATH:/usr/local/mysql-8.0.42/bin' >>~/.bashrc

6 从服务器安装mysql软件步骤


#从主库复制软件和数据库文件
rsync -r /mysql 192.168.254.52:/
rsync -r /usr/local/mysql-8.0.42 192.168.254.52:/usr/local/
rsync /lib/systemd/system/mysql.service 192.168.254.52:/lib/systemd/system/mysql.service
rsync /etc/my.cnf 192.168.254.52:/etc/my.cnf

#创建用户和组
groupadd mysql 
useradd -g mysql -s /sbin/nologin mysql

#给软件和数据库文件授权
chown -R mysql:mysql /mysql/
chown -R mysql:mysql /usr/local/mysql-8.0.42

#配置环境变量
echo 'export PATH=$PATH:/usr/local/mysql-8.0.42/bin' >>~/.bashrc
source ~/.bashrc

#启动MySQL
systemctl start mysql
systemctl enable mysql


7 基于二进制日志文件位置的主从复制配置


7.1 主库配置
添加server-id和开启binlog
root@u24-mysql-51:~# cat /etc/my.cnf 
[mysqld]
log-bin = mysql-bin
server-id = 51

systemctl restart mysql

#创建用于复制的用户
mysql -uroot -p
mysql> CREATE USER 'repl'@'192.168.254.%' IDENTIFIED BY 'password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.254.%';
mysql> FLUSH TABLES WITH READ LOCK;
mysql> show master status \G;
*************************** 1. row ***************************
             File: mysql-bin.000007
         Position: 157
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: 
1 row in set (0.00 sec)

#使用 mysqldump 备份数据
root@u24-mysql-51:~# mysqldump -uroot -p --all-databases --source-data > data.sql

#解锁
mysql -uroot -p
mysql> unlock tables;

#将data.sql备份文件传送到从库
root@u24-mysql-51:~#rsync data.sql 192.168.254.52:~


7.2 从库配置(可以配置多台从库)
#添加server-id
root@u24-mysql-51:~# cat /etc/my.cnf 
[mysqld]
server-id = 52

#修改uuid,保证主从服务器上uuid是唯一,否则出现问题1报错
root@u24-mysql-52:~# vi /mysql/data/auto.cnf 
[auto]
server-uuid=5d7fd409-3bd6-11f0-9d66-000c29704178

#重启数据库
systemctl restart mysql

#将data.sql数据导入数据库
root@u24-mysql-52:~# mysql -uroot -p < data.sql 


#在从库服务器上设置源配置
mysql>change replication source to source_host='192.168.254.51', source_user='repl', source_log_file='mysql-bin.000007', source_log_pos=157, SOURCE_PASSWORD='password',get_master_public_key=1;


mysql> start replica;
Query OK, 0 rows affected (0.41 sec)

mysql> show slave status \G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for source to send event
                  Master_Host: 192.168.254.51
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000007
          Read_Master_Log_Pos: 157
               Relay_Log_File: u24-mysql-52-relay-bin.000002
                Relay_Log_Pos: 326
        Relay_Master_Log_File: mysql-bin.000007
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes


#出现以下两个yes说明主从复制已经完成
Slave_IO_Running: Yes
Slave_SQL_Running: Yes


8 使用全局事务标识符进行主从复制(GTID)


8.1 主库配置
#在my.cnf添加以下参数 
root@u24-mysql-51:~# cat /etc/my.cnf 
[mysqld]
log-bin = mysql-bin
server-id = 51
gtid_mode=ON
enforce-gtid-consistency=ON

#创建用于复制的用户
mysql -uroot -p
mysql> CREATE USER 'repl'@'192.168.254.%' IDENTIFIED BY 'password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.254.%';
mysql> FLUSH TABLES WITH READ LOCK;

#使用 mysqldump 备份数据
root@u24-mysql-51:~# mysqldump -uroot -p --all-databases --source-data > data.sql

#解锁
mysql -uroot -p
mysql> unlock tables;

#将data.sql备份文件传送到从库
root@u24-mysql-51:~#rsync data.sql 192.168.254.52:~


8.2 从库配置
#在my.cnf添加以下参数 
root@u24-mysql-51:~# cat /etc/my.cnf 
[mysqld]
log-bin = mysql-bin
server-id = 52
gtid_mode=ON
enforce-gtid-consistency=ON


#修改uuid,保证主从服务器上uuid是唯一,否则出现问题1报错
root@u24-mysql-52:~# vi /mysql/data/auto.cnf 
[auto]
server-uuid=5d7fd409-3bd6-11f0-9d66-000c29704178


#将data.sql数据导入数据库
root@u24-mysql-52:~# mysql -uroot -p < data.sql 

#在从库服务器上设置源配置
mysql>change replication source to source_host='192.168.254.51', source_user='repl', SOURCE_PASSWORD='password',SOURCE_AUTO_POSITION = 1,get_master_public_key=1;

mysql> start replica;
Query OK, 0 rows affected (0.41 sec)

mysql> show slave status \G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for source to send event
                  Master_Host: 192.168.254.51
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000007
          Read_Master_Log_Pos: 157
               Relay_Log_File: u24-mysql-52-relay-bin.000002
                Relay_Log_Pos: 326
        Relay_Master_Log_File: mysql-bin.000007
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes


#出现以下两个yes说明主从复制已经完成
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

9 部署过程遇到问题

问题1:
mysql> show replica status \G
      
Source_SSL_Verify_Server_Cert: Yes
                Last_IO_Errno: 13117
                Last_IO_Error: Fatal error: The replica I/O thread stops because source and replica have equal MySQL server UUIDs; these UUIDs must be different for replication to work.

解决方法:
修改server-uuid的值,保证集群唯一
root@u24-mysql-52:/mysql/data# vi auto.cnf 
[auto]
server-uuid=5d7fd409-3bd6-11f0-9d66-000c29704178


问题2:
mysql> show replica status \G;

Source_SSL_Verify_Server_Cert: Yes
                Last_IO_Errno: 2061
                Last_IO_Error: Error connecting to source 'repl@192.168.254.51:3306'. This was attempt 11/86400, with a delay of 60 seconds between attempts. Message: Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection.


解决方法:
添加:get_master_public_key=1 参数

mysql>change replication source to source_host='192.168.254.51', source_user='repl', source_log_file='mysql-bin.000007', source_log_pos=157, SOURCE_PASSWORD='password',,get_master_public_key=1;

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

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

相关文章

鸿蒙OSUniApp滑动锁屏实战:打造流畅优雅的移动端解锁体验#三方框架 #Uniapp

UniApp滑动锁屏实战&#xff1a;打造流畅优雅的移动端解锁体验 引言 移动应用的安全性和用户体验是开发中不可忽视的重要环节。滑动锁屏作为一种直观、安全且用户友好的解锁方式&#xff0c;在移动应用中得到广泛应用。本文将深入探讨如何使用UniApp框架实现一个功能完备、动…

专场回顾 | 重新定义交互,智能硬件的未来设计

自2022年起&#xff0c;中国智能硬件行业呈现出蓬勃发展的态势&#xff0c;市场规模不断扩大。一个多月前&#xff0c;“小智AI”在短视频平台的爆火将智能硬件带向了大众视野&#xff0c;也意味着智能硬件已不再仅仅停留在概念和技术层面&#xff0c;而是加速迈向实际落地应用…

zynq 级联多个ssd方案设计(ECAM BUG修改)

本文讲解采用zynq7045芯片如何实现200T容量高速存储方案设计&#xff0c;对于大容量高速存储卡&#xff0c;首先会想到采用pcie switch级联方式&#xff0c;因为单张ssd的容量是有限制的&#xff08;目前常见的m.2接口容量为4TB&#xff0c;U.2接口容量为16TB&#xff09;&…

中国区域每月地下水水位栅格数据集(2005-2022)

时间分辨率&#xff1a;月空间分辨率&#xff1a;1km - 10km共享方式&#xff1a;开放获取数据大小&#xff1a;8.52 GB数据时间范围&#xff1a;2005-01-01 — 2022-12-01元数据更新时间&#xff1a;2024-09-09 数据集摘要 数据集“GWs_cn_1km”提供了2005年至2022年中国区域…

鸿蒙OSUniApp导航栏组件开发:打造清新简约的用户界面#三方框架 #Uniapp

UniApp 开发实战&#xff1a;打造符合鸿蒙设计风格的日历活动安排组件 在移动应用开发中&#xff0c;日历和活动安排是非常常见的需求。本文将详细介绍如何使用 UniApp 框架开发一个优雅的日历活动安排组件&#xff0c;并融入鸿蒙系统的设计理念&#xff0c;实现一个既美观又实…

在 HTML 文件中添加图片的常用方法

本文详解HTML图片插入方法&#xff1a;1&#xff09;通过<img>标签实现&#xff0c;必须含src和alt属性&#xff1b;2&#xff09;路径支持绝对/相对引用&#xff1b;3&#xff09;建议设置width/height保持比例&#xff1b;4&#xff09;响应式方案用srcset适配不同设备…

LangChain-自定义Tool和Agent结合DeepSeek应用实例

除了调用LangChain内置工具外&#xff0c;也可以自定义工具 实例1&#xff1a; 自定义多个工具 from langchain.agents import initialize_agent, AgentType from langchain_community.agent_toolkits.load_tools import load_tools from langchain_core.tools import tool, …

代码随想录算法训练营第60期第五十天打卡

大家好&#xff0c;首先感慨一下&#xff0c;时间过的真是快&#xff0c;不知不觉我们的训练营就已经到第五十天了&#xff0c;首先祝贺自己一直在坚持&#xff0c;今天是我们动态规划章节的收官之战&#xff0c;明天我们就会走进一个全新的算法章节单调栈&#xff0c;我们要为…

如何发布npm包?

如何发布npm包&#xff1f; 1. 注册账号[npm官网](https://www.npmjs.com/)2. 检查 npm 源是否在官方 npm 仓库&#xff0c;如果不在&#xff0c;进行切换3. 检查4. 打包配置5. 发布6. 使用错误&#xff1a;版本更新命令 1. 注册账号npm官网 2. 检查 npm 源是否在官方 npm 仓库…

AI工具使用的最佳实践,如何通过AI工具提高创作与工作效率

随着科技的迅猛发展&#xff0c;人工智能&#xff08;AI&#xff09;已从遥不可及的未来构想&#xff0c;转变为广泛应用于各行业的实用工具。AI不仅在内容创作、设计、写作等领域展现出巨大潜力&#xff0c;还通过自动化和智能化显著提升了工作效率。本文将深入探讨如何通过选…

漏洞Reconfigure the affected application to avoid use of weak cipher suites. 修复方案

修复方案&#xff1a;禁用弱加密套件&#xff08;Weak Cipher Suites&#xff09; 1. 确认当前使用的加密套件 在修复前&#xff0c;先检查应用程序或服务器当前支持的加密套件&#xff1a; OpenSSL (适用于HTTPS/TLS服务)openssl ciphers -v ALL:COMPLEMENTOFALL | sortNgi…

AI对软件工程的影响及未来发展路径分析报告

目录 第一部分&#xff1a;引言 研究背景与意义 报告框架与方法论 第二部分&#xff1a;AI对不同行业软件工程的影响分析 数字化行业 制造业 零售业 工业领域 第三部分&#xff1a;大厂AI软件工程实践案例分析 微软 谷歌 阿里巴巴 华为 第四部分&#xff1a;未来…

WSL里执行python深度学习的一些方法记录

安装anaconda3&#xff1a; 可以直接从 Download Now | Anaconda 中下载&#xff0c;然后拷贝到WSL环境的某个目录&#xff0c;执行 bash xxxxxxx.sh 即可安装。 启动jupyter notebook&#xff1a; 先conda activate 当前环境&#xff0c;然后pip install jupyter 此时&am…

使用 SpyGlass Power Verify 解决方案中的规则

本节提供了关于使用 SpyGlass Power Verify 解决方案 的相关信息。内容组织如下: SpyGlass Power Verify 简介运行 SpyGlass Power Verify 解决方案在 SpyGlass Power Verify 解决方案中评估结果SpyGlass Power Verify 解决方案中的参数SpyGlass Power Verify 报告1 SpyGlass …

spring4第3课-ioc控制反转-详解依赖注入的4种方式

1&#xff0c;属性注入&#xff1b; 2&#xff0c;构造函数注入&#xff1b;(通过类型&#xff1b;通过索引&#xff1b;联合使用) 3&#xff0c;工厂方法注入&#xff1b;(非静态工厂&#xff0c;静态工厂) 4&#xff0c;泛型依赖注入&#xff1b;(Spring4 整合 Hibernate4…

使用Rust和并发实现一个高性能的彩色分形图案渲染

分形与 Mandelbrot Mandelbrot 集 (Mandelbrot Set) 是复数平面上一个点的集合,以数学家 Benot Mandelbrot 的名字命名。它是最著名的分形之一。一个复数 c 是否属于 Mandelbrot 集,取决于一个简单的迭代过程: z n + 1 = z n 2 + c z_{n+1}=z_{n}^2+c zn+1​=zn2​+c 如果…

微信小程序的软件测试用例编写指南及示例--性能测试用例

以下是针对微信小程序的性能测试用例补充,结合代码逻辑和实际使用场景,从加载性能、渲染性能、资源占用、交互流畅度等维度设计测试点,并标注对应的优化方向: 一、加载性能测试用例 测试项测试工具/方法测试步骤预期结果优化方向冷启动加载耗时微信开发者工具「性能」面板…

行为型:观察者模式

目录 1、核心思想 2、实现方式 2.1 模式结构 2.2 实现案例 3、优缺点分析 4、适用场景 5、注意事项 1、核心思想 目的&#xff1a;针对被观察对象与观察者对象之间一对多的依赖关系建立起一种行为自动触发机制&#xff0c;当被观察对象状态发生变化时主动对外发起广播&…

t009-线上代驾管理系统

项目演示地址 摘 要 使用旧方法对线上代驾管理系统的信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在线上代驾管理系统的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#xff0c;数据存在错误不能及时纠正等问题…

LVS-NAT 负载均衡群集

目录 简介 一、LVS 与群集技术基础 1.1 群集技术概述 1.2 负载均衡群集的分层结构 1.3 负载均衡工作模式 二、LVS 虚拟服务器核心组件与配置 2.1 LVS 内核模块与管理工具 2.2 负载调度算法解析 2.3 ipvsadm 管理工具实战 三、NFS 共享存储服务配置 3.1 NFS 服务基础…