linux系统mysql8单机多实例+主从复制部署

一、解压mysql压缩包

参考我的另一篇博文,tag.gz解压完并且配置完环境变量即可,暂时不要初始化

linux单机部署mysql(离线环境解压即可)-CSDN博客

二、修改配置文件

可能因为版本不同,我的这个配置可能不是通用的,我安装的是mysql8.0.34版本。如果我的配置不适用于其他版本,请输入命令mysqld_multi --example, 参考官方的例子。

配置文件目录为:/etc/my.cnf  (可能不能更改,目前发现改了会报错)

配置内容如下:

[mysqld_multi]
mysqld     = /root/soft/mysql8/bin/mysqld_safe
mysqladmin = /root/soft/mysql8/bin/mysqladmin
user       = root
#password   = 

[mysqld2]
socket     = /tmp/mysql.sock2
port       = 3307
datadir    = /root/soft/mysql8/data2
pid-file   = /root/soft/mysql8/data2/mysql.pid2
user       = root
#一个实例占两个端口号。默认是3306和33060
mysqlx_port=33070
mysqlx_socket=/tmp/mysqlx.sock2

########## 主从复制主库配置 start ##########

server-id=1
#设置需要复制的数据库
binlog-do-db=db_master_slave
#设置不要复制的数据库
binlog-ignore-db=mysql,performance_schema,information_schema,sys
#0表示读写,1表示只读
read-only=0
#设置binlog格式
binlog_format=ROW
########## 主从复制主库配置 end ##########

[mysqld3]
socket     = /tmp/mysql.sock3
port       = 3308
datadir    = /root/soft/mysql8/data3
pid-file   = /root/soft/mysql8/data3/mysql.pid3
user       = root
#一个实例占两个端口号。默认是3306和33060
mysqlx_port=33080
mysqlx_socket=/tmp/mysqlx.sock3

########## 主从复制从库配置 start ##########

server-id=2
#开启中继日志,从主服务器上同步日志文件到本地
relay-log=relay-log-bin
#定义中继日志文件的位置和名称
relay-log-index=slave-relay-bin.index
########## 主从复制从库配置 end ##########

三、数据库初始化

由于我这边部署的是两个实例,一主一从,3307和3308

mysql的解压目录 /root/soft/mysql8

1.准备目录

分别准备3307和3308的data目录:data2和data3

cd /root/soft/mysql8

rm -r data2 data3
mkdir data2 data3

2.初始化两个实例

mysqld --defaults-file=/etc/my.cnf --basedir=/root/soft/mysql8 --datadir=/root/soft/mysql8/data2 --initialize-insecure

mysqld --defaults-file=/etc/my.cnf --basedir=/root/soft/mysql8 --datadir=/root/soft/mysql8/data3 --initialize-insecure

3.目录文件赋权

chmod -R 750 /root/soft/mysql8

四、启动多实例

1.验证实例是否配置成功

mysqld_multi report

如果显示没有mysql实例,那么请重新检查配置文件内容,和目录创建赋权。

2.启动

mysqld_multi start

3.查看是否成功

mysqld_multi report

如果成功,会显示 is running的状态。

如果需要查看占用端口号,可输入命令如下:

ss -tunlp |grep 33
#或者

netstat -tunlp |grep 33

如果启动失败,一般会出现"xxx pid ended"的错误信息,一般是配置和目录的问题。

或者也可以可查看data目录下默认的日志文件[hostname].err,这个[hostname]是动态值,就是你主机的hostname。

假如hostname是"10-23-14-11",那么命令如下

tail -111f data2/10-23-14-11.err

tail -111f data3/10-23-14-11.err

五、主从复制

1.主节点操作

连接主节点,命令如下:

mysql -uroot -p -P3307 -S /tmp/mysql.sock2

进入mysql命令窗口后,输入命令如下:

--1.创建同步账户
create user 'slave1'@'%' identified by '1234'; 
grant replication slave on *.*  to  'slave1'@'%';
alter user 'slave1'@'%' identified with mysql_native_password by '1234'; 
flush privileges;
--2.查看主节点的binlog文件的名称和偏移量
show master status;
 

2.从节点操作

连接从节点,命令如下:

mysql -uroot -p -P3308 -S /tmp/mysql.sock3

--1.配置需要复制的主节点信息,以及binlog文件的名称和偏移量(即上面主节点查看的内容)
change master to master_host='127.0.0.1',master_port=3307,master_user='slave1',master_password='1234',master_log_file='binlog.000000',master_log_pos=0;
 

--2.在从节点开启slave同步,查看同步状态
start slave;
show slave status\G;

如果 slave_io_running 和 slave_sql_running都为yes的状态,说明主从同步成功;如果是no或connecting都表示不成功,配置错误或连接不上。

3.测试同步

进入主节点mysql窗口

--1.主节点创建数据库,并且插入数据
--drop database db_master_slave;
--show master status;
create database db_master_slave;
use db_master_slave;
create table test(id bigint primary key);
insert into test values(1);
select * from test;

进入从节点mysql窗口

--2.从节点查看数据库和插入的数据
use db_master_slave;
select * from test;

如果同步错误,具体问题具体分析,这里不展开。如果是刚开始同步,可尝试把同步的database或表删除,然后重新把这一大步再做一遍

4.停止实例

使用mysqld_multi stop或mysqladmin命令。mysqld_multi stop有时候会不成功,具体问题具体分析

mysqld_multi stop

mysqladmin -uroot -p -P3307 -S /tmp/mysql.sock2 shutdown
mysqladmin -uroot -p -P3308 -S /tmp/mysql.sock3 shutdown

 如果对操作步骤依然不清晰,可参考这篇博文 ,图文较详细实现↝Mysql数据库主从复制搭建与同步_mysql主主同步复制-CSDN博客

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

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

相关文章

【Java Kubernates】Java调用kubernates提交Yaml到SparkOperator

背景 目前查询框架使用的是trino,但是trino也有其局限性,需要准备一个备用的查询框架。考虑使用spark,spark operator也已经部署到k8s,现在需要定向提交spark sql到k8s的sparkoperator上,使用k8s资源执行sql。 对比 …

linux安装docker--更具官网教程

1.访问https://docs.docker.com/ 2.进入download 3输入cento 或者直接访问地址Install Docker Engine on CentOS | Docker Docs 4一步一步根据官网命令走 2安装 3 4 方式一: service docker start(开启) service docker status&#xff08…

ubuntu怎么安装docker

sudo apt-get update sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release 添加Docker官方的GPG密钥 curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -使用以下命令设置稳定存储库。要添加 夜间或测试存储库&…

使用PowerShell命令行,批量修改文件编码

目录 ■前言 ■PowerShell命令 ■效果 ■前言 今天统计修改代码量,使用工具时,发现有些代码无法统计。 原因时UTF-8中有某些特殊字符,工具不能识别。 但是,如果把代码转换为SJIS格式,就能正常统计了。 因此&…

听筒及麦克风电路时序分析

打电话的时候。当没有免提的时候,用的是mic1,麦克风1居然是在J7尾插座子上,所以要把手机的下面贴近嘴巴。mic1的信号给到音频编解码u21,u21通过i2s线给cpu, 然后给基带cpu,然后通过射频发射出去。当要听声音的时候,射频…

【数学建模】插值与拟合

文章目录 插值插值方法用Python解决插值问题 拟合最小二乘拟合数据拟合的Python实现 适用情况 处理由试验、测量得到的大量数据或一些过于复杂而不便于计算的函数表达式时,构造一个简单函数作为要考察数据或复杂函数的近似 定义 给定一组数据,需要确定满…

【软件测试】学习笔记-性能测试场景的分类

性能测试场景的重要程度类似于业务测试的 case,case 是你进行业务测试的指引,case 是否完善也直接决定了测试的覆盖率。同理,场景是传递执行性能测试的步骤和目的,关于这两点是你一定要清楚的。 首先认识下最重要的三个性能场景&…

自主涉及从事实中抽取价值的能力

自主包括从事实中抽取价值的能力是指个体或组织在面对大量事实信息时,能够自主选择并提取出其中具有价值的内容或信息的能力。这种能力要求个体或组织具备以下几个方面的能力和素质: 1、分析能力 能够识别和理解大量的事实信息,并对其进行分析…

2024上海国际大数据与存储技术设备展览会

2024上海国际大数据与存储技术设备展览会 时间:2024年11月18-20日 地点:上海新国际博览中心 承办单位:中电会展与信息传播有限公司、上海蒙均展览服务有限公司 展会背景: 大数据时代来临,各行业数据规模呈TB级增长&#xff0…

Golang内存逃逸引发的面试考察点

Golang内存逃逸引发的面试考察点 什么是内存逃逸? 在go语言中每个goroutine都会有一个自己的栈区,每个栈区呢又会对应多个栈帧,每个栈帧就会对应一个函数,这个栈帧就是用来存储函数的局部变量、入参、返回地址等等。这些变量就会…

MySQL中GTID在主从复制机制中的作用

在数据库的世界里,数据的一致性和高可用性是任何大型应用都必须考虑的问题。尤其对于那些依赖数据库做主要存储的系统来说,如何保障数据库服务在面对故障时依然能稳定运行并保证数据不丢失,是每个数据库管理员(DBA)需要…

Java项目:12 Springboot的垃圾回收管理系统

作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 1.介绍 垃圾分类查询管理系统,对不懂的垃圾进行查询进行分类并可以预约上门回收垃圾。 让用户自己分类垃圾, 按国家标准自己分类&#x…

解读IP风险画像标签:深度洞察网络安全

在当今数字化的世界中,网络安全成为企业和个人关注的焦点。IP风险画像标签作为网络安全的利器,扮演着深度洞察网络风险的角色。本文将深入解读IP风险画像标签,揭示其在网络安全领域的重要性和功能。 1. IP风险画像标签是什么? I…

Jmeter-解析返回参数-解析并操作json

工作中经常会遇到JSON字符串,接口的入参和返回参数也多数是JSON格式,自动化项目中常需要写脚本处理返回结果,本文总结java或jmeter的beanshell脚本中对于json的常用操作 json字符串的格式 简单的JSON字符串:{“key”:“value”,“…

【服务器数据恢复】EqualLogic存储磁盘坏道导致存储不可用的数据恢复案例

服务器数据恢复环境&故障: 某公司IT部门一台某品牌EqualLogic PS6100系列存储在运行过程中突然崩溃。 服务器管理员对故障服务器存储进行初步检查,经过检测发现导致该服务器存储无法正常工作的原因是该存储中raid5磁盘阵列内有2块硬盘出现故障离线&a…

数字图像处理(实践篇)二十七 Python-OpenCV 滑动条的使用

目录 1 涉及的函数 2 实践 1 涉及的函数 ⒈ setWindowProperty()用于设置GUI应用程序的属性 cv2.setWindowProperty(windowsName, prop_id, prop_value) 参数: ①

ubuntu 挂载磁盘

Linux(ubuntu) 挂载磁盘_ubuntu挂载硬盘-CSDN博客 ls -l /dev/disk/by-uuid/sudo vim /etc/fstab UUID269cfb7f-d7eb-4b1c-b33a-8bf26b878bd7 /home/mi/data ext4 defaults 0 0 UUIDcaa7d4db-82d1-40a5-8df6-0f77818b393e /home/mi/ssd ext4 default…

UI 自动化测试框架:PO 模式+数据驱动

1. PO 设计模式简介 什么是 PO 模式? PO(PageObject)设计模式将某个页面的所有元素对象定位和对元素对象的操作封装成一个 Page 类,并以页面为单位来写测试用例,实现页面对象和测试用例的分离。 PO 模式的设计思想与…

Nodejs--Linux环境安装及配置

一、下载安装包 (1)通过命令uname -a 查看Linux系统版本。 (2)打开官网下载地址: https://www.nodejs.com.cn/ 选择对应的版本下载安装包。 (3)将下载好的安装包传到Linux对应目录进行解压。…

想要透明拼接屏展现更加效果,视频源是技术活,尤其作为直播背景

随着科技的飞速发展,视频制作和显示技术也在不断进步。透明拼接屏视频作为一种新型的视频形式,在许多场合都得到了广泛的应用。尼伽小编将深入探讨透明拼接屏视频的制作过程、要求、清晰度,以及目前常作为直播背景的优势。 一、透明拼接屏视频…