在centos7上搭建mysql主从服务器的方法(图文教程)

yizhihongxing

下面是搭建MySQL主从服务器的攻略。

1. 确认主从服务器的实现方式

MySQL主从服务器的实现方式一般有两种:

  • 基于复制的主从服务器
  • 基于半同步复制的主从服务器

基于复制的主从服务器实现简单,但是存在风险,例如主服务器出现宕机导致未同步的数据丢失。基于半同步复制的主从服务器实现较为稳定,但配置比较繁琐。

2. 配置主服务器

在CentOS 7上搭建MySQL主服务器,步骤如下:

2.1 安装MySQL

sudo yum install mariadb-server

2.2 修改MySQL配置文件

sudo nano /etc/my.cnf

在文件末尾添加以下内容:

[mysqld]
server-id=1
log-bin=mysql-bin
binlog-format=row

其中server-id是服务器的唯一标识符,log-bin启用二进制日志,binlog-format指定日志记录的格式。

2.3 重启MySQL服务

sudo systemctl restart mariadb

2.4 创建用于主从同步的账户

登录MySQL服务器并创建同步账户:

sudo mysql -u root -p

执行以下语句:

GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

2.5 获取主服务器的状态

在MySQL命令行中执行以下语句:

SHOW MASTER STATUS;

记录下FilePosition的值,备用。

3. 配置从服务器

在CentOS 7上搭建MySQL从服务器,步骤如下:

3.1 安装MySQL

sudo yum install mariadb-server

3.2 修改MySQL配置文件

sudo nano /etc/my.cnf

在文件末尾添加以下内容:

[mysqld]
server-id=2
log-bin=mysql-bin
binlog-format=row
relay-log=mysqld-relay-bin
replicate-do-db=mydb

其中server-id是服务器的唯一标识符,log-bin启用二进制日志,binlog-format指定日志记录的格式,relay-log指定中继日志文件名,replicate-do-db指定需要同步的数据库名。

3.3 重启MySQL服务

sudo systemctl restart mariadb

3.4 配置从服务器与主服务器的连接

登录MySQL服务器并执行以下命令:

CHANGE MASTER TO
MASTER_HOST='master_host_name',
MASTER_USER='replication_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='file_name',
MASTER_LOG_POS=position;

其中master_host_name是主服务器的IP地址或名称,replication_user是用于同步的账户,password是该账户的密码,file_nameposition是在主服务器上执行SHOW MASTER STATUS命令得到的值。

3.5 开始同步

在MySQL命令行中执行以下命令:

START SLAVE;

这样从服务器就会开始同步主服务器上的数据库了。

示例说明

示例1:实现多台从服务器的同步

如果需要将一个主服务器上的数据同步到多台从服务器中,只需要在每台从服务器上重复执行上面提到的“配置从服务器”的步骤即可。需要注意的是,每个从服务器的server-id需要设置成唯一的值,一般推荐使用从服务器的IP地址作为该值。

示例2:MySQL主服务器替换

如果需要将一个MySQL主服务器替换成另一个服务器,需要进行以下步骤:

  1. 将新的服务器安装MySQL并配置好,参照上面的步骤。
  2. 确认主从服务器之间的连接已经断开。
  3. 在旧的主服务器上执行SHOW MASTER STATUS;命令记录下二进制日志文件名和位置。
  4. 在新的主服务器上执行CHANGE MASTER TO命令。
  5. 在新的主服务器上使用mysqlbinlog命令将旧的主服务器上的二进制日志转换成SQL文件,并在新的主服务器上执行该文件,将数据同步到新的主服务器上。
  6. 修改所有从服务器的连接,将新的主服务器的IP地址或名称和相应的账户密码填写进去。
  7. 在所有从服务器上执行START SLAVE;命令开始同步新的主服务器。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在centos7上搭建mysql主从服务器的方法(图文教程) - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • Mysql常用运算符与函数汇总

    Mysql常用运算符与函数汇总 MySQL作为一种关系型数据库,在处理数据时,我们经常需要用到各种运算符和函数。下面是MySQL常用运算符与函数的汇总。 运算符 MySQL支持常见的算术运算符、比较运算符、逻辑运算符等。 算术运算符 MySQL支持的算术运算符有加法运算符(+)、减法运算符(-)、乘法运算符(*)、除法运算符(/)和模运算符(%)。 比较运算…

    database 2023年5月22日
    00
  • mysql中写判断语句的方法总结

    下面是针对mysql中写判断语句的方法总结的详细攻略。 1. 判断语句的基本语法 在Mysql中,判断语句的基本语法为: IF(expression1, expression2, expression3) 其中,expression1是需要进行判断的条件表达式,expression2是满足条件时的返回结果,expression3则是不满足条件时的返回结果。 …

    database 2023年5月21日
    00
  • 在redhat6.4安装redis集群【教程】

    在RedHat 6.4安装Redis集群【教程】 介绍 Redis 是一个基于内存的数据结构存储系统,其具有高性能、高可用,常用于缓存、队列等场景。对于需要对Redis进行集群管理的用户来说,本教程是一份完整的指南。 步骤 安装Redis 首先安装Redis,执行如下命令: $ sudo yum install epel-release $ sudo yum…

    database 2023年5月22日
    00
  • SQL server中提示对象名无效的解决方法

    SQL Server中提示对象名无效(Object name is not valid)通常是由于以下原因引起的: 对象名未正确命名 缺少所需的权限 对象不存在 下面介绍几种可能造成此问题的解决方法。 方法一:检查对象命名并添加方括号 可能出现的原因之一是对象名称没有正确命名,如果对象名称包含不规则字符,如空格和其他标点符号,则必须添加方括号以正确引用该对象…

    database 2023年5月21日
    00
  • IntelliJ IDEA 2022.1 正式版发布 (附更新内容汇总)

    IntelliJ IDEA 2022.1 正式版发布 (附更新内容汇总) IntelliJ IDEA 2022.1 是一款全球知名的Java开发环境,于近日正式发布。它拥有许多新特性,可以使Java开发更加高效。下面将详细介绍IntelliJ IDEA 2022.1 的更新内容和操作流程。 更新内容汇总 IntelliJ IDEA 2022.1 中的主要更新…

    database 2023年5月22日
    00
  • MySQL如何查看建库建表语句

    MySQL是一种非常流行的关系型数据库管理系统。在开发和管理MySQL数据库时,查看建库建表语句是非常常见的需求。这里提供MySQL如何查看建库建表语句的完整攻略,详细步骤如下: 查看建库语句 使用SHOW语句查看建库语句 SHOW CREATE DATABASE database_name; 这里的database_name是你需要查看的数据库名称。执行以…

    database 2023年5月21日
    00
  • MySQL将select结果执行update的实例教程

    以下是“MySQL将select结果执行update的实例教程”的攻略: 1. 背景简介 MySQL是一种常用的关系型数据库管理系统。update语句用于在表中更新数据,select语句用于从表中检索数据。采用MySQL将select结果执行update操作的实例,可以使我们方便地根据一定的条件,更新表中的数据。 2. 实例教程 下面以一个实例来说明MySQ…

    database 2023年5月22日
    00
  • Python的Django框架实现数据库查询(不返回QuerySet的方法)

    对于“Python的Django框架实现数据库查询(不返回QuerySet的方法)”,我们可以通过以下步骤来实现: 步骤一:连接数据库 在Django中,我们可以通过django.db来连接数据库,需要在settings.py文件中配置数据库信息。 # 在settings.py中配置数据库信息 DATABASES = { ‘default’: { ‘ENGI…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部