MySQL8.0主从部署配置详细步骤

3 篇文章 1 订阅
1 篇文章 1 订阅

环境:CentOS7+MySQL8

hostnameip角色
c7-lab110.10.104.51
c7-lab210.10.104.52

在这里插入图片描述

一、安装MySQL数据库
1.1、下载mysql8,下载rpm bundle包上传到centos系统上。官网 https://dev.mysql.com/downloads/mysql
在这里插入图片描述

或者使用wget命令+链接直接下载

wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar

在这里插入图片描述
1.2、解压bundle包

tar xvf mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar

在这里插入图片描述
1.3、卸载mariadb

rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs-*

在这里插入图片描述
1.4、安装MySQL
安按照下面图片的顺序安装MySQL的rpm包
在这里插入图片描述

rpm -ivh mysql-community-common-8.0.33-1.el7.x86_64.rpm mysql-community-client-plugins-8.0.33-1.el7.x86_64.rpm mysql-community-libs-8.0.33-1.el7.x86_64.rpm mysql-community-client-8.0.33-1.el7.x86_64.rpm mysql-community-icu-data-files-8.0.33-1.el7.x86_64.rpm mysql-community-server-8.0.33-1.el7.x86_64.rpm

在这里插入图片描述
1.5、初始化MySQL并启动

#初始化
mysqld --initialize --console
#授权mysql用户
chown -R mysql:mysql /var/lib/mysql/
启动服务
systemctl start mysqld

systemctl enable mysqld
#查看初始化密码
cat /var/log/mysqld.log  | grep localhost

在这里插入图片描述

1.6、登录MySQL和配置用户

mysql -u root -p  #带上初始化的密码

在这里插入图片描述
修改密码,开启远程

#修改登录密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Csdn@123';
#切换到mysql数据库
use mysql;.
#开启数据库远程管理
update user set Host='%' where User='root';
flush privileges;

在这里插入图片描述

二、主从配置

2.1、确保你已经安装了MySQL 8.0并且两个服务器(主服务器和从服务器)都已经正常运行。
2.2、在主服务器(c7-lab1)上修改配置文件(my.cnf或my.ini)新增下面参数:

cat  >> /etc/my.cnf <<EOF 
#服务器 id,随意,但要唯一
server-id = 1  
#二进制文件存放路径
log-bin = mysql-bin 
#参数用于排除自带的数据库。  
binlog-ignore-db = mysql 
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema
#二进制日志格式,建议使用ROW格式以获得更好的兼容性和可靠性。
binlog-format = ROW 

EOF

重启从服务以使配置更改生效。

systemctl restart mysqld

2.3、在主服务器的数据库中创建用于复制的账户并授予相应的权限。例如,可以使用以下命令创建账户:

#登录MySQL
mysql -uroot -pCsdn@123

use mysql;
#创建用户
CREATE USER 'db_sync'@'%' IDENTIFIED BY 'Csdn@123';
#授权账号复制权限
GRANT REPLICATION SLAVE ON *.* TO 'db_sync'@'%';
#刷新配置
FLUSH PRIVILEGES;

2.4、在主服务器上执行以下命令获取当前二进制日志文件的名称和位置:

SHOW MASTER STATUS;

记下输出中的 File 和 Position 值,后续在从服务器上使用。
在这里插入图片描述

2.5、在从服务器(c7-lab2)上修改配置文件(my.cnf或my.ini),找到并编辑以下参数:

cat >>/etc/my.cnf <<EOF

server-id = 2
#中继日志文件的名称,用于从主服务器接收二进制日志事件。
relay-log = mysql-relay-bin 
#从服务器的二进制日志文件的名称。
log_bin = mysql-bin 
#不同步相关的库
replicate-ignore-db = mysql 
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema

EOF

重启MySQL服务

systemctl restart mysqld

2.6、登录从服务器(c7-lab2)MySQL上更据主服务器建立的账号和show master status;显示的内容,修改以下命令配置主从复制:(根据第2.4上的内容修改)

STOP SLAVE;
CHANGE MASTER TO
 MASTER_HOST = '10.10.104.51',
 MASTER_USER = 'db_sync',
 MASTER_PASSWORD = 'Csdn@123',
 #主服务器数据库上的file值(不能有空格)
 MASTER_LOG_FILE = 'mysql-bin.000001',
 #主服务器数据库的Position值
 MASTER_LOG_POS = 157,
 get_master_public_key=1;

在这里插入图片描述

2.7、在在从服务器启动同步并查看状态

#开启同步
start slave;

查看同步状态

SHOW SLAVE STATUS\G;

在这里插入图片描述
检查输出中的 Slave_IO_Running 和 Slave_SQL_Running 字段,确保两个字段的值都是 Yes,表示主从复制已经成功配置。

  • 9
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kubernetes(k8s)是一个用于自动化部署、扩展和管理容器化应用程序的开源平台。MySQL是一个流行的关系型数据库管理系统。在Kubernetes上部署MySQL8.0主从集群意味着在该平台上使用容器化的方式来管理MySQL数据库,主从集群是一种数据库复制的架构,用于提高数据库的可用性和性能。 要在Kubernetes上部署MySQL8.0主从集群,首先需要创建一个包含MySQL8.0镜像的容器,并定义相应的Pod和Service。然后可以使用Kubernetes的Deployment和StatefulSet等资源对象来定义MySQL主从集群的部署配置。可以通过定义多个Replica来实现数据库的水平扩展,同时可以使用Kubernetes的存储卷来实现数据的持久化存储,并通过Service来实现集群内部和外部的访问。 Kubernetes提供了一些工具和资源对象,如PersistentVolume(PV)、PersistentVolumeClaim(PVC)等,可以帮助用户管理数据库的持久化存储。此外,Kubernetes还提供了一些网络策略和服务发现的功能,可以帮助用户实现容器间的通信和负载均衡。 通过使用Kubernetes的灵活性和强大的管理能力,可以方便地部署和管理MySQL8.0主从集群,实现高可用性和高性能的数据库服务。同时,Kubernetes的自动扩展和自愈能力也可以帮助用户实现数据库集群的自动化管理,提高运维效率。因此,Kubernetes是一个理想的平台,用于部署和管理MySQL8.0主从集群。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值