百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

「MySQL」CentOS7 下安装及搭建主从复制

nanshan 2024-10-25 13:01 18 浏览 0 评论

一篇文章,教你搞定 MySQL 主从复制。

CentOS7 下安装 MySQL

1,wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
2,rpm -ivh mysql-community-release-el7-5.noarch.rpm
3,yum install mysql-community-server
4,service mysqld restart(此为重启MySQL服务命令)
5,mysql -uroot -p(此为进入MySQL命令)

至此,就算安装完毕。刚安装上 MySQL 时,是没有密码的,所以运行第 5 个命令之后,直接回车,就能进入到 MySQL 界面,如图,即表示成功

MySQL 修改密码

没有密码就能进入 MySQL ,安全性肯定是不能保证的,所以接下来介绍一下,如何修改密码。运行以下命令即可(这里以将密码改为 root 为例):

use mysql;
update user set password=password("root") where user='root';
flush privileges;
exit;

检测密码是否成功,重新进入 MySQL :

mysql -uroot -p

输入root之后,能看到如下界面,即为成功:

MySQL搭建主从复制

写在前面:搭建主从复制的前提是,都安装好了 MySQL 。这篇文章以 192.168.243.133 为主,192.168.243.132 为从为例,来演示搭建过程。同时请注意,MySQL 密码为 root 1,133 为主,132 为从,从 133 上面,进入 MySQL 给 132 授权:

grant replication slave on *.* to 'root'@'192.168.243.132' identified by 'root';
参数说明:
用户名:root
密码:root
意为:允许192.168.243.132使用用户名为root,密码为root访问133

成功效果如图:

2,开启 133 的 binarylog MySQL Binary Log 也就是常说的 bin-log ,是 mysql 执行改动产生的二进制日志文件,其主要作用有两个:

  • 数据恢复
  • 主从数据库。用于 slave 端执行增删改,保持与 master 同步。
编辑my.cnf这个配置文件:vi /etc/my.cnf
将以下内容保存至该配置文件中:
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
server-id=1
log-bin=mysql-bin
expire_logs_days= 7
max_binlog_size= 100m                       //binlog每个日志文件大小
binlog_cache_size= 4m                        //binlog缓存大小
max_binlog_cache_size= 512m                     //最大binlog缓存大小
binlog-do-db=401_test
lower_case_table_names=1

具体如图:

进入 mysql ,查看 binary 是否开启成功:

3,在 133 和 132 上面分别创建数据库。此处以 401_test (如果数据库和我的不同,则主从的 my.cnf 上面相对应的数据库名称都要更改)为例

创建数据库:create database 401_test;

4,编辑 132 的 my.cnf 文件:

编辑my.cnf配置文件:vi /etc/my.cnf
将以下内容保存至该配置文件中:
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-bin=mysql-bin
binlog_format=mixed
server-id=2

replicate-do-db=401_test

与 133 稍微有些不同,请注意。效果如图:

5,查看 133 的 binary 日志位置,这在后续配置 132 时会用到。 连接 MySQL ,使用命令查看 binary :

show master status\G
具体解析:
File:日志名称
Position:日志偏移量
Binlog_Do_DB:记录日志的库

6,开启 132 的同步: 在 132 上面运行以下命令:

CHANGE MASTER TO
    -> MASTER_HOST='192.168.243.133',
    -> MASTER_USER='root',
    -> MASTER_PASSWORD='root',
    -> MASTER_LOG_FILE='mysql-bin.000002',
    -> MASTER_LOG_POS=120;

具体如图:

HOST:主节点ip
USER: 133 授权给 132 的用户名
PASSWORD:授权给 132 的密码
MASTER_LOG_FILE: 133 的日志名称
MASTER_LOG_POS:日志偏移量,需要和 133 的一样
如果忘记了,请回看第 5 步

7,查看 132 的 slave 线程是否开启:

show slave status\G

Slave_IO_Running为读取master的binaryLog的线程 Slave_SQL_Running为执行SQL的线程 这两个线程必须都为YES才可以实现主从复制 至此主从复制就搭建完了。

MySQL搭建互为主从

在以上配置的基础之上,将 132 作为 master , 133 作为 slave 进行再次配置。 1,在 132 上面连接 MySQL 之后,为 133 授权

grant replication slave on *.* to 'root'@'192.168.243.133' identified by 'root';

2,查看 132 的 binarylog

show master status;

3,开启 133 的同步(这里的步骤和 132 配置相同,我就不在这里展示了,如果忘记了,可以往上面再翻翻看) 4,查看 133 slave 的状态:

show slave status\G;



可能出现的错误:

解决办法: 出现上图的错误就先将 slave 停掉,再操作一遍,使用命令: STOP SLAVE ,(此处命令必须为大写) 开启完同步之后需要打开 slave ,使用命令: START SLAVE (此处命令必须为大写)。 至此,搭建互为主从复制结束。

常用到的命令

在这个过程中有几个命令是常用到的,来总结一下(#后面为注释内容):

进入 mysql :mysql -uroot -p
重启 mysql :systemctl restart mysql或service mysqld restart
查看 slave 线程:show slave status\G
mysql 授权命令:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root';
#参数说明:
#第一个 root 是 mysql 的用户名
#第二个 root 是 mysql 的密码
# %表示所有机器都可以通过用户名 root ,密码 root 访问该 mysql
flush privileges ;  #使修改生效

感谢您的阅读。

相关推荐

0722-6.2.0-如何在RedHat7.2使用rpm安装CDH(无CM)

文档编写目的在前面的文档中,介绍了在有CM和无CM两种情况下使用rpm方式安装CDH5.10.0,本文档将介绍如何在无CM的情况下使用rpm方式安装CDH6.2.0,与之前安装C5进行对比。环境介绍:...

ARM64 平台基于 openEuler + iSula 环境部署 Kubernetes

为什么要在arm64平台上部署Kubernetes,而且还是鲲鹏920的架构。说来话长。。。此处省略5000字。介绍下系统信息;o架构:鲲鹏920(Kunpeng920)oOS:ope...

生产环境starrocks 3.1存算一体集群部署

集群规划FE:节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。>3节点。BE:节点负责数据存储和SQL执行。>3节点。CN:无存储功能能的BE。环境准备CPU检查JDK...

在CentOS上添加swap虚拟内存并设置优先级

现如今很多云服务器都会自己配置好虚拟内存,当然也有很多没有配置虚拟内存的,虚拟内存可以让我们的低配服务器使用更多的内存,可以减少很多硬件成本,比如我们运行很多服务的时候,内存常常会满,当配置了虚拟内存...

国产深度(deepin)操作系统优化指南

1.升级内核随着deepin版本的更新,会自动升级系统内核,但是我们依旧可以通过命令行手动升级内核,以获取更好的性能和更多的硬件支持。具体操作:-添加PPAs使用以下命令添加PPAs:```...

postgresql-15.4 多节点主从(读写分离)

1、下载软件[root@TX-CN-PostgreSQL01-252software]#wgethttps://ftp.postgresql.org/pub/source/v15.4/postg...

Docker 容器 Java 服务内存与 GC 优化实施方案

一、设置Docker容器内存限制(生产环境建议)1.查看宿主机可用内存bashfree-h#示例输出(假设宿主机剩余16GB可用内存)#Mem:64G...

虚拟内存设置、解决linux内存不够问题

虚拟内存设置(解决linux内存不够情况)背景介绍  Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存...

Elasticsearch性能调优(5):服务器配置选择

在选择elasticsearch服务器时,要尽可能地选择与当前业务量相匹配的服务器。如果服务器配置太低,则意味着需要更多的节点来满足需求,一个集群的节点太多时会增加集群管理的成本。如果服务器配置太高,...

Es如何落地

一、配置准备节点类型CPU内存硬盘网络机器数操作系统data节点16C64G2000G本地SSD所有es同一可用区3(ecs)Centos7master节点2C8G200G云SSD所有es同一可用区...

针对Linux内存管理知识学习总结

现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:地址映射内存管理的方式缺页异常先来看一些基本的知识,在进程看来,内存分为内...

MySQL进阶之性能优化

概述MySQL的性能优化,包括了服务器硬件优化、操作系统的优化、MySQL数据库配置优化、数据库表设计的优化、SQL语句优化等5个方面的优化。在进行优化之前,需要先掌握性能分析的思路和方法,找出问题,...

Linux Cgroups(Control Groups)原理

LinuxCgroups(ControlGroups)是内核提供的资源分配、限制和监控机制,通过层级化进程分组实现资源的精细化控制。以下从核心原理、操作示例和版本演进三方面详细分析:一、核心原理与...

linux 常用性能优化参数及理解

1.优化内核相关参数配置文件/etc/sysctl.conf配置方法直接将参数添加进文件每条一行.sysctl-a可以查看默认配置sysctl-p执行并检测是否有错误例如设置错了参数:[roo...

如何在 Linux 中使用 Sysctl 命令?

sysctl是一个用于配置和查询Linux内核参数的命令行工具。它通过与/proc/sys虚拟文件系统交互,允许用户在运行时动态修改内核参数。这些参数控制着系统的各种行为,包括网络设置、文件...

取消回复欢迎 发表评论: