当前位置:网站首页>MySQL主从搭建(问题大聚集,告别部署烦恼)
MySQL主从搭建(问题大聚集,告别部署烦恼)
2022-08-02 18:11:00 【Slcp】
MySQL主从搭建
前言
公司规定,生产环境中一旦与数据(缓存也不例外
)扯上关系的一律不由k8s统一管理
因此,别想一键式部署了,只能老老实实单独部署
再此,就记录一下搭建过程,分享给小伙伴们,避免浪费时间
废话不多说,上车
下载
没有安装mysql,我这边也给大伙们准备了~
配置
1、master
和node
二台服务器,分别到/etc/my.cnf
配置文件, 在mysqld
里添加一下属性
#master
[mysqld]
server-id=101
log-bin = mysql-bin
auto-increment-increment = 2
auto-increment-offset = 1000
#node
[mysqld]
server-id=103
log-bin = mysql-bin
auto-increment-increment = 2
auto-increment-offset = 1001
2、进入Mysql,分别为二台master创建各种的用户供对方使用
温馨提示
: 本案例为双主从,也就是master同步到node,node同步到master。单主从,就只需要不执行带*
即可
#master的机器上
CREATE USER 'master'@'%' IDENTIFIED BY '123456';
#node的机器上(*)
CREATE USER 'node'@'%' IDENTIFIED BY '123456';
3、分别给用户授予复制权限
#master的机器上
GRANT REPLICATION SLAVE ON *.* TO 'master'@'%' identified by '123456';
#刷新
flush privileges;
#node的机器上(*)
GRANT REPLICATION SLAVE ON *.* TO 'node'@'%' identified by '123456';
#刷新
flush privileges;
4、分别重启服务,登录mysql用户,通过show master status
查看二进制文件名称还有pos位置,为slave配置复制位置
master
node
5、分别切换master,注意master_log_file还有master_log_pos mysql里面操作
#node的机器上
change master to master_host='master服务器ip',master_user='master',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=154;
#master的机器上(*)
change master to master_host='node服务器ip',master_user='node',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=154;
6、分别利用命令启动slave
#启动
start slave;
#关闭
stop slave;
7、测试结果,在master上创建数据库,node是否能同步,然后再在node上创建表写数据,看master能否同步。
安装完成之后,所有mysql重启就可以了
其他问题
- ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
很显然,系统提示我们需要更改密码。一般出现这种情况是第一次登录时,需要先修改密码后才能操作。
set password for root@localhost=password('123456');
- Slave_SQL_Running:no:
解决办法如下:
stop slave;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
START SLAVE;
show slave status;
- Slave_IO_Running: No
#解决办法
stop slave;
#根据master重新设置file和pos
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000026',MASTER_LOG_POS=0;
slave start;
show slave status;
- 数据库主从日志很大
设置只保留30天的binlog
(临时,重启mysql这个参数会失败)
set global expire_logs_days = 30;
(永久,my.cnf中添加,重启后生效)、
expire_logs_days = 30
查看当前的日志保存天数
show variables like ‘expire_logs_days’;
- 若有其他未提及问题,进行留言,小编会及时回复~
边栏推荐
猜你喜欢
How to build a quasi-real-time data warehouse?
载20(S)-人参皂苷/细胞穿膜肽-单克隆抗体-载丝裂霉素白蛋白纳米微球的制备
MySQL命令(命令行方式,而非图形界面方式)
就刚刚,鸿蒙3.0发布了,华为还一口气发布了十一款产品
codeforces:E. Add Modulo 10【状态压缩 + 找规律】
针对时间的功能测试点,这里给你总结全面了
固态硬盘接口类型介绍
Functional test points for time, here is a comprehensive summary for you
宝塔搭建实测-基于ThinkPHP5.1的wms进销存源码
为何国内年轻人都抢购iPhone,因为它更实惠也更亲民
随机推荐
redis总结_基础
成功部署工业物联网的五个关键
golang刷leetcode动态规划(10)编辑距离
redis总结_分布式缓存
C#里如何简单的校验时间格式
golang刷leetcode 经典(3) 设计推特
LiveGBS国标GB/T28181流媒体平台支持主子码流切换主码流stream/streamprofile
洛谷P2345 MooFest G
回收站删除的文件怎么恢复,2个方法汇总助您快速解决
MySQL命令(命令行方式,而非图形界面方式)
面试官:可以谈谈乐观锁和悲观锁吗
请教下,1.0.0和1.0.2的底层数据库表结构有变化吗?
Data Governance: The Evolution of Data Integration and Application Patterns
golang 源码分析(39)hystrix-go
指针常量和常量指针概述
什么是会话劫持以及如何阻止它
How to deal with security risks posed by machine identities
洛谷P2880 Balanced Lineup G
香农与信息论三大定律
Monitor is easy to Mars debut: distributed operations help TOP3000 across management gap