mysql主从服务器同步心得体会

MySQL 主从服务器同步心得体会

MySQL 主从复制是数据库中常用的数据备份和分析的方法,主数据库将数据同步到从数据库,并且可以方便地进行分析和处理。为了保证主从同步正常工作,需要考虑以下几个方面:

1.配置主机和从机

1.1 主机配置

在主机上需要配置以下几个参数:

# 开启二进制日志,记录修改的数据
log-bin=mysql-bin
# 设置服务器ID,ID不要与从机重复
server-id=1

1.2 从机配置

在从机上需要配置以下几个参数:

# 从库复制账号,需要有REPLICATION SLAVE权限
replicate-user=slave_user:password
# 指定从机ID,ID不要与主机或其他从机重复
server-id=2
# 从哪个日志文件开始复制
log-slave-updates=true
# 指定从机的同步方式是使用主库或从库
# 主要适用于从库当主库的脱离和场景转移
# 值为ON和OFF
log_bin=mysql-bin
binlog-do-db=test
binlog-ignore-db=mysql    

2. 同步数据

2.1 主机执行

在主机上执行以下命令创建一个与主从机同步的用户:

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

2.2 从机开启同步

在从机上执行以下命令开启数据同步:

CHANGE MASTER TO
MASTER_HOST='<master-host>',
MASTER_PORT=<master-port>,
MASTER_USER='<slave-user>',
MASTER_PASSWORD='<password>',
MASTER_LOG_FILE='<master-bin-log-file>',
MASTER_LOG_POS=<master-bin-log-pos>;

其中主机名、用户名、密码、二进制日志文件、同步位置要替换成实际的值。

3. 监控同步状态

3.1 查看主从状态

在从机上执行以下命令查看主从状态:

SHOW SLAVE STATUS\G

该命令将输出从机的相关信息,包括数据库版本、运行状态等。

3.2 查看同步日志

在主从机上可以通过二进制日志来查看同步日志:

mysqlbinlog --base64-output=DECODE-ROWS mysql-bin.000001

其中mysql-bin.000001是二进制日志文件名。

4. 实例说明

4.1 示例1:新建主从服务器

在主机上进行以下配置:

log-bin=mysql-bin
server-id=1

在从机上进行以下配置:

replicate-user=slave_user:password
server-id=2
log-slave-updates=true

执行以下SQL脚本,创建一个测试数据库和一个测试表:

CREATE DATABASE IF NOT EXISTS test;
USE test;
CREATE TABLE IF NOT EXISTS user (
    id INT NOT NULL AUTO_INCREMENT,
    username VARCHAR(255),
    password VARCHAR(255),
    PRIMARY KEY (id)
);

将主机的数据同步到从机上:

CHANGE MASTER TO
MASTER_HOST='master-host',
MASTER_PORT=3306,
MASTER_USER='slave_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=4;

在从机上执行以下命令查看主从状态:

SHOW SLAVE STATUS\G

如果输出了正确的结果,就说明主从同步成功。

4.2 示例2:变更从库同步数据的方式

假设我们有两台机器,一台主机ms1,一台从机rs1,现在需要将从机rs1转化为主机ms2,并且需要让rs1的数据同步到ms2上。

首先,在rs1上进行以下配置:

server-id=2
log-slave-updates=true
log_bin=mysql-bin
binlog-do-db=test

然后在rs1上执行以下脚本:

USE test;
INSERT INTO user(username, password) VALUES('user1', '123456');
INSERT INTO user(username, password) VALUES('user2', '123456');
INSERT INTO user(username, password) VALUES('user3', '123456');

然后在ms2上进行以下配置:

server-id=3

将rs1的数据同步到ms2上:

CHANGE MASTER TO
MASTER_HOST='rs1',
MASTER_PORT=3306,
MASTER_USER='slave_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=4;

在ms2上执行以下命令查看同步日志:

mysqlbinlog --base64-output=DECODE-ROWS master-bin.000001 > /tmp/sql

在/tmp/sql文件中可以看到同步的SQL语句:

USE test;
INSERT INTO user(username, password) VALUES('user1', '123456');
INSERT INTO user(username, password) VALUES('user2', '123456');
INSERT INTO user(username, password) VALUES('user3', '123456');

如果输出了正确的结果,就说明从库转化为主库成功,同时数据也成功同步到了ms2上。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mysql主从服务器同步心得体会 - Python技术站

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

相关文章

  • Oracle出现超出打开游标最大数的解决方法

    当Oracle数据库中打开的游标数超过了数据库的最大游标数限制时,就会出现“超出打开游标最大数”的错误。 常见的解决方法有以下几种: 方法一:增加最大游标数量 首先,需要查看当前最大游标数限制: SHOW parameter open_cursors; 然后,通过以下命令修改最大游标数量: ALTER SYSTEM SET open_cursors=1000…

    database 2023年5月21日
    00
  • SQL中视图和物化视图的区别

    视图和物化视图都是SQL中的数据视图,用于从数据库表中抽象出一种逻辑上的结构。但是,它们之间有明显的区别。 视图 视图(View)是SQL中一种虚拟的表,它指向实际表中的一部分数据。在视图的概念中,查询结果是处理后,带有特定限制和规则的表。视图没有实际数据存储在其中,只是定义了一种访问数据的方式。 视图的优点 视图使得用户可以从数据库表中获取所需的子集数据,…

    database 2023年3月27日
    00
  • MYSQL的存储过程和函数简单写法

    MySQL是一款常用的关系型数据库管理系统,支持存储过程和函数的编写。这里将详细讲解MySQL的存储过程和函数的简单写法,并提供几个示例说明。 存储过程的简单写法 在MySQL中,存储过程就是一个SQL语句集合,可以理解为一种特殊的函数。使用存储过程可以减少重复的SQL语句,提高代码的复用性和执行效率。以下是MySQL存储过程的简单写法: CREATE PR…

    database 2023年5月22日
    00
  • 解决sql server2008注册表写入失败,vs2013核心功能安装失败

    问题描述: 在安装Sql Server 2008和VS2013时,可能会出现“注册表写入失败”的问题,这将导致安装失败。本文将提供详细的攻略,以解决此问题。 解决方法: Step 1:重置注册表权限 打开命令行窗口(以管理员身份运行),输入以下命令并按回车键执行: secedit /configure /cfg %windir%\inf\defltbase.…

    database 2023年5月21日
    00
  • Mysql一主多从部署的实现步骤

    实现一主多从部署可以提高Mysql的可用性和读写性能。下面是具体的实现步骤。 步骤一:搭建Mysql主节点 安装Mysql数据库服务; 在主节点的Mysql配置文件my.cnf中开启binlog日志:log-bin=mysql-bin; 在配置文件中配置需要同步的数据库和表:binlog-do-db=database_name; 重启Mysql服务,使配置生…

    database 2023年5月22日
    00
  • linux中Redis单机安装

    Redis安装 Linux版本:CentOS release 6.9 Redis 版本:redis-3.2.12.tar.gz 默认端口:6379 1、执行解压命令 tar -xzf redis-3.2.12.tar.gz 2、执行编译命令 make MALLOC=libc       3、执行安装到指定目录命令,此次指定目录为 /my/mysys/redi…

    Redis 2023年4月11日
    00
  • MySQL慢查询优化之慢查询日志分析的实例教程

    MySQL慢查询优化之慢查询日志分析的实例教程 慢查询日志分析背景 慢查询日志是MySQL提供的一种记录查询响应时间较长、IO操作、锁等因素影响查询速度的一个日志记录功能。通过分析慢查询日志,可以找到慢查询的SQL语句并排除导致慢查询的原因,从而提高数据库的运行效率。 开启慢查询日志 在MySQL配置文件my.cnf(或my.ini)中,找到[mysqld]…

    database 2023年5月19日
    00
  • sql2008 附加数据库时出现错误5123提示的解决方法

    下面是详细讲解《sql2008 附加数据库时出现错误5123提示的解决方法》的完整攻略。 1. 问题描述 在对 SQL Server 2008 数据库进行附加操作时,可能会遇到以下错误提示: Msg 5123, Level 16, State 1, Line 1CREATE FILE encountered operating system error 5(…

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