MySQL主从环境搭建

MySQL主从环境搭建

主机MySQL配置

  1. 修改主机配置文件
java 复制代码
vim /etc/my.cnf

主要是在my.cnf配置文件中增加以下内容:

java 复制代码
#主服务器唯一ID
server-id=1
#启用二进制日志
log-bin=mysql-bin
# 设置不要复制的数据库(可设置多个)
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
#设置需要复制的数据库
binlog-do-db=TESTDB
#设置logbin格式
binlog_format=STATEMENT
  1. 创建用于从机复制时连接主机的账号以及设置权限
    这里创建的账号后面从机连接时会用到;

在主机中打开mysql命令行,执行下面的命令,创建从机连接主机的账号以及设置权限。

slave是用户名称;192.168.200.225是登录域名,这里是从机的ip;123123是登录密码

java 复制代码
create user 'slave'@'192.168.200.225' identified by '123123'; 

设置权限,这里给了这个账号所有的权限。

java 复制代码
grant all privileges on *.* to 'slave'@'192.168.200.225' with grant option; 

通过下面的命令查看账号拥有的权限

java 复制代码
show grants for 'slave'@'192.168.200.225';
  1. 查看主机的状态
java 复制代码
 show master status;

这里的File和Position字段的值等下从机连接主机时需要用到。 需要注意的是,重启MySQL服务后这两个值可能会发生变化。

从机MySQL配置

  1. 在从机的my.cnf配置文件中加入以下内容
java 复制代码
#从服务器唯一ID
server-id=2
#启用中继日志
relay-log=mysql-relay

需要注意的是,修改配置文件后重启才会生效。

  1. 在从机上配置主机

MASTER_HOST是主机的ip;MASTER_LOG_FILE是前面使用show master status展示出来的值,MASTER_LOG_POS也是一样的。

java 复制代码
CHANGE MASTER TO MASTER_HOST='192.168.200.215',
MASTER_USER='slave',
MASTER_PASSWORD='123123',
MASTER_LOG_FILE='mysql-bin.000013',MASTER_LOG_POS=120;
  1. 启动从机
java 复制代码
#启动从机
start slave;

#停止从机
stop slave;
  1. 查看从机的状态
java 复制代码
 show slave status\G;

当下图中的Slave_IO_Running和Slave_SQL_Running都是Yes就说明主从配置成功。

我这里Slave_IO_Running一开始是Connecting状态,原因在于主机中创建的slave账号权限没有给。其它可能的原因是主机和从机的防火墙开着,所以连接不上;或者端口未开放。详细信息可以查看错误日志。

测试主从配置

在主机中创建TESTDB数据库,然后创建user表,插入一条记录;然后刷新从机的数据库,就可以看到从机同步了TESTDB数据以及表中的记录。

主机

从机

可以看到从机同步了主机的数据。

参考

  1. mysql8.0数据库添加用户和授权
  2. linux服务器上查看mysql日志文件位置
  3. mysql 8.0 + Last_IO_Error: error connecting to master 'root@XXX:3306' - retry ...
  4. MySQL 8.0主从(Master-Slave)配置
相关推荐
ss2732 分钟前
AI时代首先数据库-PostgreSQL实战笔记 27 PostgreSQL数据写入与读取流程解析
数据库·笔记·postgresql
数字新视界2 分钟前
信创机房动环监控技术在智能运维中的应用与优势分析
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
星光开发者8 分钟前
基于springboot智慧草场牛羊管理系统-计算机毕设【课程设计】50360
vue.js·spring boot·后端·mysql·php·课程设计·express
悟天特斯25 分钟前
边缘计算的“实时决策“:从数据回传到边端即时推理的决策升级
数据库·人工智能·边缘计算
这个DBA有点耶37 分钟前
分布式集群的“最后一公里”:分片集群与透明分布式集群的工程代价拆解
数据库·分布式·架构
郑州光合科技余经理1 小时前
同城小程序开发:同一笔单在用户端和商家端各显示到哪
android·java·开发语言·前端·后端·uni-app·php
猫咪很可爱1 小时前
MySQL 视图与只读用户:安全查询的完整实践指南
数据库·sql·mysql
l1t1 小时前
测试用go语言执行脚本把数据保存到SQLite数据库
数据库·golang·sqlite
猫咪很可爱1 小时前
MySQL 5.7 备份恢复后函数与存储过程丢失:原因分析与正确备份姿势
数据库·mysql·bug·shell
GottdesKrieges1 小时前
Redis哨兵模式新建用户和修改口令
数据库·redis