MySQL主从配置及haproxy和keepalived搭建
本篇文章主要介绍如何搭建MySQL主主配置、主从配置、haproxy、keepalived,已经搭建过程中的一些问题。本次运行环境是在docker中,也会介绍一些docker的知识
docker 小知识
创建本机可访问的MySQL容器
1、直接用 docker 拉取别人搭建好的MySQL
2、自己创建 centos 或者其他容器,下载安装MySQL
我是采用的第二种方案
命令: docker run -itd --name mysql_server1 -p 13306:3306 centos:7
13306 是本地的端口,3306是容器的端口。这样本地可以根据端口13306访问容器中的数据库
-i: 交互式操作。
-t: 终端。
-d: 后台运行容器,并返回容器ID;
创建harpoxy、Keepalive 的容器
docker run -itd --privileged=true --name mysql_server1 -p 23396:3306 centos:7 /sbin/init
--privileged=true 和 /sbin/init 加上这两个可以在容器中使用systemctl的命令
然后通过docker exec -it 容器ID 进入
如果没有 systemctl 运行haproxy和Keepalive会遇到一些问题,且不容易找到错误日志
下载MySQL
1、粘贴MySQL社区最新的MySQL rpm包链接,wget下载
2、rpm -ivh mysql.rpm (下载的rpm文件)
3、yum install mysql
4、在 /var/log/mysqld.log 中找到初始化密码,登录,设置密码
MySQL主主配置
我分别在172.17.0.2和172.17.0.4 中安装了MySQL,用于搭建主主配置
172.17.0.2 MySQL 配置
1、编辑 MySQL 配置文件 vim /etc/my.cnf。不知道配置文件在哪的可以执行 mysql --help | grep 'Default options' -A 1 这个命令
server-id = 1 # 唯一的不能重复
log-bin = mysql-bin # 开启二进制日志
binlog_format = ROW # 日志格式
max_binlog_size = 100M # 最大日志文件大小
binlog-do-db = itma1 # 支持主从的db
2、老的MySQL版本可能需要配置让主键不同的参数,本次使用环境是MySQL8.0默认不会主键冲突,不需要额外配置
172.17.0.2的配置
server-id = 2
log-bin = mysql-bin
binlog_format = ROW
max_binlog_size = 100M
binlog-do-db = itma1
执行sql命令
# 172.17.0.2 执行命令
# 创建用户
create user slave@"%" IDENTIFIED BY "test123";
# 授予权限
GRANT REPLICATION SLAVE ON *.* TO slave@"%";
show master status\G
# 172.17.0.4 执行命令
change master to master_host="gateway",master_port=13306, master_user="slave",master_password="test123",master_log_file="mysql-bin.000001",master_log_pos=157;
start slave;
show slave status\G
以上是 0.2是主,0.4是从。上边的命令两个机器反过来分别执行一次,即可配置成 0.4主,0.2是从,这样主主配置搭建完成
配置过程中可能会出现一些错误,利用 show slave status\G 可以查看具体错误信息,不过也有可能出现命令操作太快,还未链接成功的情况。本人还遇到过主的账号(slave账号)需要在主的服务器登录一次,从服务器才能链接成功的情况,暂时不确定什么原因,有知道的可以留言,非常感谢
MySQL主从配置
1、从库配置文件,所属主库为 172.17.0.2
server-id = 11
log-bin = mysql-bin
binlog_format = ROW
log_slave_updates = 1
max_binlog_size = 100M
replicate-do-db = itma1 # 从库更新也写binlog
2、执行命令
change master to master_host="gateway",master_port=13306, master_user="slave",master_password="test123",master_log_file="mysql-bin.000001",master_log_pos=157;
start slave;
haproxy 配置
新创建centos容器
yum install haproxy
# 配置文件
vim /etc/haproxy/haproxy.cfg # 最好先备份一下
systemctl start haproxy
systemctl start haproxy
配置如下图,注意:model 需要时tcp,http虽然检测没问题,但是通过本服务器的地址链接不到MySQL服务
配置成功之后,就可以在其他服务器通过该服务器地址链接MySQL了
Keepalived 配置
使用haproxy同样的服务器
yum install keepalived
# 配置文件
vim /etc/keepalived/keepalived.conf 最好先备份
systemctl start keepalived
systemctl status keepalived
配置如下图
haproxy 和keepalived 可以配置到多个服务器上,keepalived 会根据优先级去判断使用哪台主机,至于这样配置的好处这里就不过多介绍
MySQL主从配置及haproxy和keepalived搭建的更多相关文章
- centos MySQL主从配置 ntsysv chkconfig setup命令 配置MySQL 主从 子shell MySQL备份 kill命令 pid文件 discuz!论坛数据库读写分离 双主搭建 mysql.history 第二十九节课
centos MySQL主从配置 ntsysv chkconfig setup命令 配置MySQL 主从 子shell MySQL备份 kill命令 pid文件 discuz!论坛数 ...
- MySQL主从配置详解
一.mysql主从原理 1. 基本介绍 MySQL 内建的复制功能是构建大型,高性能应用程序的基础.将 MySQL 的 数亿分布到到多个系统上去,这种分步的机制,是通过将 MySQL 的某一台主机的数 ...
- mysql主从配置和galera集群
mariadb主从 主从多用于网站架构,因为主从的同步机制是异步的,数据的同步有一定延迟,也就是说有可能会造成数据的丢失,但是性能比较好,因此网站大多数用的是主从架构的数据库,读写分离必须基于主从架构 ...
- mysql主从配置实现一主一从读写分离
主从介绍Mysql主从又叫Replication.AB复制.简单讲就是A与B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,实现数据实时同步mysql主从是基于binlog,主上需开启bin ...
- mysql主从配置
引言: 双11,阿里云服务器打折,于是我忍不住又买了一台服务器,于是咱也是有两台服务器的爷们了,既然有了两台服务器,那么肯定要好好利用一下吧,那么就来玩玩mysql的主从配置吧. 准备 两台数据库服务 ...
- Mysql主从配置,实现读写分离
大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...
- CentOS 7下的 Mysql 主从配置
最近在玩mysql主从配置,在此记录一下 一.前言 1.安装两个虚拟机(CentOS 7).iP分别是192.168.47.131 和192.168.47.133.其中192.168.47.133作为 ...
- Mysql主从配置+读写分离
Mysql主从配置+读写分离 MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. ...
- mysql主从配置(清晰的思路)
mysql主从配置.鄙人是在如下环境测试的: 主数据库所在的操作系统:win7 主数据库的版本:5.0 主数据库的ip地址:192.168.1.111 从数据库所在的操作系统:linux 从数据的版本 ...
随机推荐
- ctfhub 过滤运算符 综合过滤练习 读取源代码 远程包含 eval执行 文件包含 php://input
过滤运算符 过滤了\和&那么尝试; 成功那么将flag cat出来 127.0.0.1;cat flag_27249269530391.php 得到flag 综合过滤练习 这次过滤有点多过滤了 ...
- 4-Pandas数据预处理之数据转换(df.map()、df.replace())
在数据分析中,根据需求,有时候需要将一些数据进行转换,而在Pandas中,实现数据转换的常用方法有: 利用函数或是映射 可以将自己定义的或者是其他包提供的函数用在Pandas对象上实现批量修改. ap ...
- 顺利通过EMC实验(20)
- canvas菜鸟基于小程序实现图案在线定制功能
前言 最近收到一个这样的需求,要求做一个基于 vue 和 element-ui 的通用后台框架页,具体要求如下: 要求通用性高,需要在后期四十多个子项目中使用,所以大部分地方都做成可配置的. 要求做成 ...
- electron制作聊天界面(仿制qq)
效果图: 样式使用scss和flex布局 这也是制作IM系统的最后一个界面了!在制作之前参考了qq和千牛 需要注意的点 qq将滚动条美化了 而且在无操作的情况下是不会显示的 滚动条美化 ::-webk ...
- vue常用知识点总结
感谢本文引用链接的各位大佬们,小菜鸟我只是个搬运工 1.谈一谈你理解的vue是什么样子的? vue是数据.视图分离的一个框架,让数据与视图间不会发生直接联系.MVVM 组件化:把整体拆分为各个可以复用 ...
- javaweb图书管理系统之不同用户跳转不同页面
关于分级自测题,我们知道该系统一共分为两个角色,一个是读者,一个是管理员,我们需要根据不同用户去到不同的页面,所以我们需要写一个登陆界面. 本文先写这个功能的实现,该功能主要在servlet里面实现. ...
- java中instanceof是怎么用的, 干什么使的,举例!
instanceof关键字 instanceof是java中固有的关键字, 就像main, public一样,用法:aa instanceof AA 就是问aa是不是AA的一个实例, 是的话,就返回真 ...
- C++---继承和派生
继承和派生 在C++中, 代码重用是通过继承机制来实现的 继承, 就是在一个已经存在的类的基础上, 再建议一个新类 从已经有的类派生出新的类, 派生类就继承了基类的特征, 包括成员和方法 继承可以完成 ...
- Mybatsi注解开发-基础操作
1.导入坐标 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pag ...