linux Mysql 主从服务器复制配置

目录

前言

准备环境

操作步骤

1. 在主库上开启二进制日志记录功能

2.从服务器在从库上my.cnf开启二进制日志记录功能

3. 在主库上创建一个用于从库访问的备份用户

4. 在主库上获取二进制日志文件和位置信息

5. 在从库上添加主库信息

6. 启动从库的复制进程

可能出现的问题及解决


前言


在业务复杂的系统中,有这么一个情景,有一句sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作。

准备环境


1. 主服务器、从服务器 关闭防火墙

2. 主服务器、从服务器 安装Mysql

以下是 MySQL 5.7 版本的主从复制配置步骤

操作步骤


1. 在主库上开启二进制日志记录功能


在主库上的 `my.cnf` 配置文件中,将 `log-bin` 参数设置为二进制日志记录的文件名(例如:`log-bin=mysql-bin`),并设置 `server-id` 参数来标识主库的唯一 ID 号。例如:

```

[mysqld]

log-bin=mysql-bin

server-id=1

```

使用命令:USE mydb 进入数据库

在使用命令:select * from customer 查看数据表

 vim打开Mysql主配置文件写入以下内容

命令:vim/etc/my.cnf

保存退出 并重启服务:systemctl restart mysqld

2.从服务器在库上my.cnf开启二进制日志记录功能


```

[mysqld]

log-bin=mysql-bin

server-id=2

```

vim打开从服务器在主配置文件 /etc/my.cnf写入

命令:vim/etc/my.cnf

保存退出 并重启服务:systemctl restart mysqld

3. 在主库上创建一个用于从库访问的备份用户


在主库上创建一个用于从库访问的备份用户,并授予其 `REPLICATION SLAVE` 权限:

```

CREATE USER 'backup'@'%' IDENTIFIED BY 'password';

GRANT REPLICATION SLAVE ON *.* TO 'backup'@'%';

```

其中 `backup` 是备份用户的用户名,`password` 是该用户的密码。`'%'` 表示该用户可以从任意远程地址访问主库,具体可以根据实际需求修改

Mysql -u root -p123..coM 进入Mysql 进行创建

4. 在主库上获取二进制日志文件和位置信息


在主库上获取当前正在写入的二进制日志文件名和位置信息:

```

SHOW MASTER STATUS;

```

该命令的输出结果包含主库当前正在写入的二进制日志文件名 `File` 和位置 `Position`。将这两个值记录下来,后面将用到。

5. 在从库上添加主库信息


在从库上执行以下命令,添加主库的连接信息。其中 `master-host` 是主库的 IP 或主机名,`master-user` 和 `master-password` 是步骤 2 中创建的备份用户的用户名和密码,`master-log-file` 和 `master-log-pos` 是步骤 3 中获取的二进制日志文件名和位置信息:

```

CHANGE MASTER TO

  MASTER_HOST='master-host',  (IP地址)

  MASTER_USER='backup',   (用户名)

  MASTER_PASSWORD='password',  (密码)

  MASTER_LOG_FILE='master-log-file',   (名字)

  MASTER_LOG_POS=master-log-pos;   (位置)

```

案例:

CHANGE MASTER TO

  MASTER_HOST='192.168.1.121',

  MASTER_USER='cjf1',

  MASTER_PASSWORD='123..coM',

  MASTER_LOG_FILE='mysql-bin.000001',

  MASTER_LOG_POS=603;

其中 `master-host`, `master-user`, `master-password`, `master-log-file`, `master-log-pos` 分别替换为实际的值。

进入从服务器 使用root用户打开Mysql

命令 Mysql -u root -p123..coM

6. 启动从库的复制进程


在从库上执行以下命令,启动从库的复制进程:

```

START SLAVE;

```

此时,从库将开始连接主库,并复制主库上的数据。当主从同步顺利进行时,执行以下命令可查看主从复制状态:

```

SHOW SLAVE STATUS\G;

```

在输出结果中,可以查看到是否连接到主库、当前正在复制的二进制日志文件名和位置、复制延迟等信息。

需要注意的是,在进行 MySQL 主从复制的操作时,我们应该保持不断地监控和维护主从库之间的数据同步,及时发现和处理异常情况,从而确保数据库系统的高可用性和稳定性。

使用 show databases 查看 主服务器数据库此刻的数据表

 使用 show databases 查看 从服务器数据库此刻的数据表

在主服务器上使用命令:create database aaa; 创建aaa数据表

使用root用户在从服务器打开mysql

命令:mysql -u root -p123..coM

再打开从服务器使用命令:show databases 查看

此时就看到了主服务器创建的aaa数据表 

这就完成了主从服务器复制配置

可能出现的问题及解决


mysql> start slave;

ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository

mysql> reset slave;

Query OK, 0 rows affected (0.10 sec)

mysql> start slave;

Query OK, 0 rows affected (0.10 sec)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值