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 从数据的版本 ...
随机推荐
- (stm32f103学习总结)—printf重定向
一.printf重定向简介 我们知道C语言中printf函数默认输出设备是显示器,如果要实现在 串口或者LCD上显示,必须重定义标准库函数里调用的与输出设备相关的函数.比如使用printf输出到串口, ...
- android:text 文字阴影设置
<SPAN style="FONT-SIZE: 16px"><TextView android:id="@+id/text" a ...
- 论文解读(XR-Transformer)Fast Multi-Resolution Transformer Fine-tuning for Extreme Multi-label Text Classification
Paper Information Title:Fast Multi-Resolution Transformer Fine-tuning for Extreme Multi-label Text C ...
- php实验一 html网页设计
页面展示: 源码demo: 等我传到github
- java中的方法(method)到底怎么用?给个例子
7.方法(method) 被调例子, int add(int x, int y){ return x+y; } 主调例子, for example: int result = add(5,3); ...
- DWRUtil.addOptions
DWRUtil.addOptions有5种模式 数组: DWRUtil.addOptions(selectid, array) 会创建一堆option,每个option的文字和值都是数组元素中的值. ...
- 小程序预览图片wx.previewImage
效果图: ====> ==> 代码: <image mode='aspectFill' bindtap='previewImage' data-src='{{dataList ...
- 《头号玩家》AI电影调研报告(五)
4.VR自由行走跑步机 电影中,它可以让玩家朝任意方向无限奔跑并保持在平台最中央,还可以模拟上台阶和走斜坡的情况.而下面这件VR跑步装备,可以让你在游戏世界穿行自如. 奥地利创意公司Cyberith公 ...
- 小程序安卓端播放不了音频解决方法wx.createInnerAudioContext()
在小程序播放音频时,使用组件wx.createInnerAudioContext(),安卓端无法播放音频. 我的情况:播放服务器上传来的音频,格式为mp3.首先查看你的格式是否符合文档要求 在安卓端进 ...
- Python入门-多进程
1.获取本机CPU # 早期的CPU是单核:实现多个程序并行,在某一时间点,其实只有一个进程 # 后来硬件多核CPU:多个进程是并行执行. from multiprocessing import cp ...