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

这篇具有很好参考价值的文章主要介绍了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表示只读。super-read-only是针对超级管理员用户

super-read-only=0
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

#0表示读写,1表示只读。super-read-only是针对超级管理员用户

super-read-only=1
read-only=1
#开启中继日志,从主服务器上同步日志文件到本地
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

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

--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博客文章来源地址https://www.toymoban.com/news/detail-823304.html

到了这里,关于linux系统mysql8单机多实例+主从复制部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CentOS7安装Mysql8并进行主从复制配置

    CentOS7中安装Mysql8并配置远程连接和修改密码等: CentOS7中安装Mysql8并配置远程连接和修改密码等_霸道流氓气质的博客-CSDN博客 在上面实现安装Mysql8的基础上,克隆出两台机器,修改ip后进行mysql的主从复制搭建。 在主库上把数据更改记录到二进制日志中(Binary Log)中,这些记

    2024年02月16日
    浏览(45)
  • MySQL8.0主从部署配置详细步骤

    环境:CentOS7+MySQL8 hostname ip 角色 c7-lab1 10.10.104.51 主 c7-lab2 10.10.104.52 从 一、安装MySQL数据库 1.1、下载mysql8,下载rpm bundle包上传到centos系统上。官网 https://dev.mysql.com/downloads/mysql 或者使用wget命令+链接直接下载 1.2、解压bundle包 1.3、卸载mariadb 1.4、安装MySQL 安按照下面图片的顺序

    2024年01月16日
    浏览(40)
  • Docker部署mysql8.x版本互为主从

    两台服务器拉取mysql8.x镜像 192.168.197.136 192.168.197.137 docker pull mysql:8.0.28 两台服务器配置免密登录 生成秘钥   ssh-keygen   (一路回车默认即可) ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.197.137    将公钥发送到另一个节点 ssh root@192.168.197.137    测试是否是免密登录 然后来构建m

    2023年04月11日
    浏览(41)
  • MySQL主从复制环境部署

    通过将MySQL的某一台主机(master)的数据复制到其他主机(slaves)上,并重新执行一遍来执行 复制的这一过程叫做主从复制。 通过主从复制可以实现后续的读写分离,部署高可用架构等打下基础。 在进行同步前,最好使两边数据库内容保持一致、版本号尽量一致、操作系统

    2024年02月15日
    浏览(40)
  • 【MySQL】主从复制&部署

    SQL 什么是SQL? Structure Query Language(结构化查询语言) 它被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后被国际化标准组织(ISO)采纳为关系数据库语言的国际标准。 数据库管理系统可以通过SQL管理数据库;定义和操作数据,维护数据的完整性和安全性。 优点 简单

    2024年02月08日
    浏览(35)
  • Docker集群部署-MySQL主从复制

    利用Docker实现MySQL主从复制架构的部署,实现1主1从集群配置。 要求实验主机能够连接外网,已经正确安装Docker,并关闭防火墙和selinux。 新建主服务器容器实例3307 # docker run -p 3307:3306 --name mysql-master -v /mydata/mysql-master/log:/var/log/mysql -v /mydata/mysql-master/data:/var/lib/mysql -v /m

    2024年02月12日
    浏览(37)
  • Linux环境下Mysql8的下载、安装、主从模式搭建

      下载地址:MySQL :: Download MySQL Community Server (Archived Versions) 文件名称:mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz 先解压xz xz -d mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz 再解压tar tar -xvf mysql-8.0.17-linux-glibc2.12-x86_64.tar mkdir data groupadd mysql useradd -g mysql mysql chown -R mysql.mysql /data/mysql8 /data/mysql8是解压

    2024年02月08日
    浏览(53)
  • mysql基础4——单机多实例部署

    前提了解: 适用于服务器不够,但需要把业务区分开的情况下,可以部署此方式。比如多个业务平台使用的数据库不同,不能只创建一个数据库,这时候就需要部署多实例。 实际情况中能避免此方式就避免,因为没有高可用,出现问题所有业务数据都会出现问题,一般采用

    2024年02月11日
    浏览(40)
  • Linux 下安装配置部署MySql8.0

    MySQL安装包:在官网下载需要的版本,这里我用的版本是 MySQL 8.0.34 https://dev.mysql.com/downloads/mysql/ 本次linux机器使用的是阿里云ECS实例 1. 将安装包上传至服务器 解压到当前文件夹 2. 移动解压后的目录到目标安装目录 3. 文件名太长,改成 mysql-8.0.34 4. 增加用户组 mysql,在用户组

    2024年01月16日
    浏览(48)
  • K8S--安装MySQL8(单机)

    原文网址:K8S--安装MySQL8(单机)-CSDN博客 本文介绍K8S部署MySQL8(单机)的方法。 ----------------------------------------------------------------------------------------------- 分享Java真实高频面试题,吊打面试官: Java后端真实面试题大全 - 自学精灵 分享靠谱的Java高级实战,包含:高并发、架

    2024年01月21日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包