当前位置:网站首页>MySQL的主从模式搭建
MySQL的主从模式搭建
2022-08-05 05:25:00 【技术的搬运工】
一、安装 MySQL
1、在虚拟机中先装两台 centos7
2、然后分别在两台 cnetos7 中安装 mysql,并配置好 mysql 的相关权限等
3、使用MySQL数据库连接工具 SQLyog 或者 Navicat 测试数据库的连接,将两个 MySQL 数据库分别作为 主库、从库
1)例如:我虚拟机中 centos7 中的两个 MySQL 数据库连接地址分别为:192.168.7.83、192.168.49.130
主库(Master):192.168.7.83 ( 对应虚拟机: centos7 )
从库(Slave):192.168.49.130 ( 对应虚拟机:centos7 - 04 )
二、Master[主库] 配置
1)修改 Master 配置文件
vim /etc/my.cnf
修改 my.cnf 为下面的内容 (加上下面标红的两句内容)
# 修改为
# MySQL 服务唯一标识# server_id 任意配置,只要是数字即可# 但是server_id Master 唯一标识数字必须小于 Slave 唯一标识数字.server_id=1# 开启日志功能以及日志文件命名# 变量的值就是日志文件名称.是日志文件名称的主体.# MySQL数据库自动增加文件名后缀和文件类型. 如 master_log.xxxxxxxxxxxxxxxx# 这里设置的 log_bin 就是主库中的 Binary log 文件,用来了被从库读取log_bin=master_log
加入后的内容
my.cnf 文件默认的内容:
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove the leading "# " to disable binary logging
# Binary logging captures changes between backups and is enabled by
# default. It's default setting is log_bin=binlog
# disable_log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
#
# Remove leading # to revert to previous value for default_authentication_plugin,
# this will increase compatibility with older clients. For background, see:
# https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin
# default-authentication-plugin=mysql_native_password
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
2)重启 MySQL
systemctl restart mysqld
3)配置 Master
# 访问MySQL(命令行登陆到 MySQL)
mysql -u root -p # 然后输入密码 123456
创建用户(创建用来访问 该主库的用户)
在 MySQL 数据库中,为不存在的用户授权,就是同步创建用户并授权。此用户是 从库Slave 访问主库使用的用户,ip地址不能写为%,
因为主从备份中,当前创建的用户,是给 从库Slave 访问 主库Master 使用的,用户必须有指定的访问地址,不能是通用地址,
set global validate_password_policy=0;
set global validate_password_length=4;# 创建 slave 用户,并给 slave 用户授权 ;ON *.* 表示所有库下面的所有的表 , IDENTIFIED BY 'slave' 表示密码是 slave# 这里的ip地址换成你的从库的ip地址GRANT ALL PRIVILEGES ON *.* TO 'slave'@'192.168.49.130' IDENTIFIED BY 'slave' WITH GRANT OPTION;FLUSH PRIVILEGES;
创建用户流程:
查看用户
use mysql; # 使用 mysql 数据库
select host,user from user; # 查询 mysql 数据库下的 user 表中的 host、User 字段
使用 mysql 库中的 user 表,查看用户创建的情况
查看 mysql 库中的所有表
查询 user 表的 user 和 host 字段
查看 Master 信息
show master status;
查看 master 相应的信息 (这里就可以看到 master_log.000001 就是之前我们在 my.conf 中配置的 二进制文件 )
查看 master_log.000001 文件所在的位置:/var/lib/mysql 并进入该位置查看 master_log 文件
master_log.000001 文件我们无法查看,但我们可以使用 cat 命令查看 master_log.index,其实 master_log.index 的内容表示的是 master_log.000001 所在的位置
到这里 主库Master 的配置就算是配好了
三、Slave[从库] 配置
1)修改 Slave 配置文件
vim /etc/my.cnf
修改为下列的内容:
# MySQL 服务唯一标识
# server_id 任意配置,只要是数字即可# server_id Master 唯一标识数字必须小于 Slave 唯一标识数字.server_id=2
从库 的 server_id 一定要比 主库 的大
2)重启 MySQL
systemctl r estart mysqld
3)配置 Slave
先访问一下 MySQL:
mysql -u root -p # 然后输入密码 123456
停止 Slave 功能:(在 mysql 命令行中执行)
stop slave; # 先停止后,才能执行配置主库的命令
在 从库 中 配置 主库 信息:
需要修改的数据是依据Master信息修改的.
ip是Master 所在物理机IP.
用户名和密码是Master提供的Slave访问用户名和密码.
日志文件是在Master中查看的主库信息提供的.
在Master中使用命令show master status查看日志文件名称。
# 需要主库的ip地址、mysql的 用户名 和 密码
change master to master_host='192.168.7.83',master_user='root',master_password='123456',master_log_file='master_log.000001';
这里配置的 master_log_file 文件一定是要在 主库 中使用 show master status 命令查找出来的 File (一定是要对应的,不对应时,需要重新执行一下change命令)
在主库中 查找到的 日志文件,因为 从库 读取的就是这个 主库 中的文件
启动Slave功能:(在 mysql 命令行中执行)
start slave;
查看 Slave 配置:
show slave status \G; # \G 表示格式化输出信息
如果这里的 Error 有问题,说明没有配置成功
四、测试主从
1)使用 SQLyog 或者 Navicat,分别连接 主库 192.168.7.83 root/123456 名称为 mycat-master、从库 192.168.49.130 root/123456 名称为 mycat-slave
主库 连接
从库 连接
2)建库,测试是否同步成功
然后在 主库 中新建一个 test 数据库,选择 utf8mb4,utf8mb4_general_ci
刷新 从库,然后就自动同步了 主库 的内容
3)建表,测试是否同步成功
在 主库 的 test 数据库中,新建一张 user 表,表有 id 和 name 字段
刷新 从库,然后就自动同步了 主库 中的表内容
边栏推荐
- The size of the screen adaptation
- D39_Eulerian Angles and Quaternions
- NACOS Configuration Center Settings Profile
- VS Code私有服务器部署(私有化)
- lingo入门——河北省第三届研究生建模竞赛B题
- Matplotlib绘图笔记
- 深夜小酌,50道经典SQL题,真香~
- 农场游戏果园系统+牧场养殖系统+广告联盟模式流量主游戏小程序APP V1
- 【FAQ】What is Canon CCAPI
- Native JS takes you to understand the implementation and use of array methods
猜你喜欢
VLAN is introduced with the experiment
LaTeX 图片加标题 文本分栏自动换行
Writing OpenCV in VSCode
selenium学习
scikit-image image processing notes
Teach you simple steps to achieve industrial raspberries pie properly installed RS232 USB drive
The use of three parameters of ref, out, and Params in Unity3D
Q 2020, the latest senior interview Laya soul, do you know?
D45_Camera assembly Camera
Configuration of routers and static routes
随机推荐
白鹭egret添加新页面教程,如何添加新页面
Alibaba Cloud Video on Demand
系统基础-学习笔记(一些命令记录)
lingo入门——河北省第三届研究生建模竞赛B题
Mina's long and short connections
What is Alibaba Cloud Express Beauty Station?
cs231n learning record
Seven Ways to Center a Box Horizontally and Vertically
Programmers should understand I/O this way
The method of using ROS1 bag under ROS2
input detailed file upload
【FAQ】什么是 Canon CCAPI
NAT experiment
May I ask how to read the binlog of the two tables of hologres through flink sql, and then how to join?
多用户商城多商户B2B2C拼团砍价秒杀支持小程序H5+APP全开源
LaTeX 图片加标题 文本分栏自动换行
NACOS Configuration Center Settings Profile
transport layer protocol
Tips for formatting code indentation
无法导入torchvision.io.read_image