目录

一 数据库架构图

二 机器配置

三 mysql主主配置

四 Keepalived高可用配置


一 数据库架构图

二 机器配置

master1 172.16.90.180 CentOS 7.6 Keepalived VIP:172.16.90.186

master2 172.16.90.181 CentOS 7.6 Keepalived VIP:172.16.90.186

三 mysql主主配置

首先在两个节点上都下载mysql:

#获取5.7安装包

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.36-el7-x86_64.tar.gz

#安装mysql

mkdir -p /app/

tar -xvf mysql-5.7.36-el7-x86_64.tar.gz -C /app/

ln -s /app/mysql-5.7.36-el7-x86_64/ /app/mysql

(ln -s命令可通过linux中ln -s 命令详解_坚持就有希望的博客-CSDN博客_ln- s,详细了解)

cd /app/mysql/

#创建MySQL用户

useradd mysql

#创建数据目录

mkdir /data/mysql -p

#目录授权

chown mysql.mysql -R /data/mysql

chown mysql.mysql -R /app/mysql

#配置环境变量

vim /etc/profile

#末尾添加这行内容

export PATH=/app/mysql/bin:$PATH

source /etc/profile

#初始化数据库

mysqld --initialize-insecure --user=mysql --basedir=/app/mysql --datadir=/data/mysql

#配置mysql主配置文件

cat >> /etc/my.cnf << EOF

[mysqld]

basedir                 = /app/mysql

datadir                 = /data/mysql

pid-file                = /tmp/mysql.pid

socket                  = /tmp/mysql.sock

port                    = 3306

user                    = mysql

log_error               = /data/mysql/mysql-error.log

slow-query-log-file     = /data/mysql/mysql-slow.log

log_bin                 = /data/mysql/mysql-master-bin.log

relay-log               = /data/mysql/mysql-relay-bin

server-id               = 1

innodb_buffer_pool_size = 1024M

innodb_log_buffer_size  = 16M

key_buffer_size         = 128M

query_cache_size        = 256M

tmp_table_size          = 128M

binlog_format          = mixed

skip-external-locking

skip-name-resolve

character-set-server    = utf8

collation-server        = utf8_bin

max_allowed_packet      = 16M

thread_cache_size       = 256

table_open_cache        = 4096

back_log                = 1024

max_connect_errors      = 100000

interactive_timeout  =  1800

wait_timeout  = 1800

max_connections         = 500

sort_buffer_size        = 16M

join_buffer_size        = 4M

read_buffer_size        = 4M

read_rnd_buffer_size    = 16M

binlog_cache_size       = 2M

thread_stack            = 192K

max_heap_table_size     = 128M

myisam_sort_buffer_size = 128M

bulk_insert_buffer_size = 256M

open_files_limit        = 65535

query_cache_limit       = 2M

slow-query-log

long_query_time         = 2

expire_logs_days        = 3

max_binlog_size         = 1000M

slave_parallel_workers  = 4

log-slave-updates

binlog_ignore_db        = mysql

replicate_wild_ignore_table = mysql.%

sync_binlog = 1

innodb_file_per_table   = 1

innodb_flush_method     = O_DIRECT

innodb_buffer_pool_instances = 4

innodb_log_file_size    = 512M

innodb_log_files_in_group = 3

innodb_open_files       = 4000

innodb_read_io_threads  = 8

innodb_write_io_threads = 8

innodb_thread_concurrency = 8

innodb_io_capacity      = 2000

innodb_io_capacity_max  = 6000

innodb_lru_scan_depth   = 2000

innodb_max_dirty_pages_pct = 85

innodb_flush_log_at_trx_commit = 2

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[mysqldump]

quick

quote-names

max_allowed_packet      = 16M

[client]

default-character-set   = utf8

[mysql]

default-character-set   = utf8

[isamchk]

key_buffer              = 128M

sort_buffer_size        = 4M

read_buffer             = 2M

write_buffer            = 2M

[myisamchk]

key_buffer              = 128M

sort_buffer_size        = 4M

read_buffer             = 2M

write_buffer            = 2M

EOF

#准备服务管理配置文件

cat >> /etc/systemd/system/mysqld.service << EOF

[Unit]

Description=MySQL Server

Documentation=man:mysqld(8)

Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html

After=network.target

After=syslog.target

[Install]

WantedBy=multi-user.target

[Service]

User=mysql

Group=mysql

ExecStart=/app/mysql/bin/mysqld --defaults-file=/etc/my.cnf

LimitNOFILE = 5000

EOF

#启动mysql服务

systemctl daemon-reload

systemctl start mysqld

systemctl status mysqld

在master1中为mysql从库账户授权:

grant replication slave on . to 'sync'@'192.168.10.%' identified by 'syncpwd';

flush privileges;

show master status; #当前主库状态,即master1

在master2中为mysql从库账户授权:

grant replication slave on . to 'sync'@'192.168.10.%' identified by 'syncpwd';

flush privileges;

show master status; #当前主库状态,即master2

在maste1中指定master2为主库:

stop slave;

change master to master_host='172.16.90.181',master_user='sync',master_password='syncpwd',master_log_file='mysql-bin.000004',master_log_pos=599;

flush privileges;

SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;

START SLAVE;

start slave;

在maste2中指定master1为主库:

stop slave;

change master to master_host='172.16.90.180',master_user='sync',master_password='syncpwd',master_log_file='mysql-bin.000004',master_log_pos=599;

flush privileges;

SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;

START SLAVE;

start slave;

MySQL双主配置完成,验证配置成功

show slave status\G

如果两个节点下面的属性都是Yes,则说明安装成功

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

笔者在安装的过程中出现了Slave_IO_Running: No,并且报错为:

Got fatal error 1236 from master when reading data from binary log

然后通过这篇博客找到了解决方法,再次记录一下:

Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file n_君子志邦的博客-CSDN博客

至此,mysql主主已经配置完成。

四 Keepalived高可用配置

首先在两个机器上都安装Keepalived。

安装:yum install -y keepalived

启动:systemctl start keepalived && systemctl enable keepalived

说明: 当两台服务器都正常的时候 用户默认访问服务器A,如果A有异常则访问B服务器。

首先记录一下这里踩的一个坑:yum下载keepalived报错:

然后就更换了yum源,然后就可以正常下载 keepalived了,参考博客:

yum 修改源_zb313982521的博客-CSDN博客_修改yum源

下载完keepalived后,vim /etc/keepalived/keepalived.conf

节点1配置文件修改为:

! Configuration File for keepalived
global_defs {notification_email {ops@localhost}notification_email_from root@localhostsmtp_server 127.0.0.1smtp_connect_timeout 30router_id mysql-master
}vrrp_instance VI_1 {state MASTER  interface ens192      virtual_router_id 51    priority 100         advert_int 1         authentication {   auth_type PASS auth_pass 1111     }virtual_ipaddress {    172.16.90.186}
}

节点2配置文件修改为:

! Configuration File for keepalived
global_defs {notification_email {ops@localhost}notification_email_from root@localhostsmtp_server 127.0.0.1smtp_connect_timeout 30router_id mysql-master
}vrrp_instance VI_1 {state BACKUPinterface ens192virtual_router_id 51priority 90advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {172.16.90.186}
}

然后直接使用172.16.90.186这个VIP访问数据库。当访问成功,并且插入数据时,两个主节点都更新了数据,则证明mysql主主配置和keepalived配置成功。

Mysql主主架构搭建以及Keepalived配置VIP相关推荐

  1. keepalived配置VIP(虚拟IP)

    首先为了测试机器,准备两台服务器: host1 172.28.23.73host2 172.28.23.96虚拟ip 172.28.23.100 第一步:在线安装keepalived中间件 sudo ...

  2. keepalived+mysql双主高可用配置

    具体架构图如下 两个节点一主一从(从库上面也可以再挂一个从库),或者是双主,再利用keepalived在出现容灾时进行高可用切换. Keepalived原理说明: 其实这个原理可以很简单的用一个故事说 ...

  3. Keepalived+LVS+MySQL双主复制实现读写负载均衡及高可用

    目录 一.Keepalived和LVS简介 1. Keepalived简介 2. LVS简介 二.安装配置 1. 下载安装LVS 2. 下载安装Keepalived 3. Keepalived配置 5 ...

  4. mysql双主之keepalived

    生产环境中一台mysql主机存在单点故障,所以我们要确保mysql的高可用性,即两台MySQL服务器如果其中有 一台MySQL服务器挂掉后,另外一台能立马接替其进行工作. MySQL的高可用方案一般有 ...

  5. linux mysql 自动加斜杠_【实战演练】Linux操作系统19-Mysql主主复制加Keepalived高可用...

    理论部分,在之前的文章已经说明过了,详见: 繁星亮与鲍包包:[理论研究]业务系统高可用及负载均衡​zhuanlan.zhihu.com 上一篇已经讲述对2台Mysql服务器做主主复制,实现Mysql数 ...

  6. 配置MySQL读写分离架构,采用maxscale

    配置MySQL读写分离架构,采用maxscale 配置MySQL读写分离架构 采用maxscale 下载maxscale 配置MySQL主从架构 配置MySQL主服务器 配置MySQL从服务器 配置m ...

  7. keepalived mysql双主架构图_基于keepalived Mysql双主热备配置

    基于keepalived双主热备: 一.环境: OS:CentOS 6.5 X64 DB Version:Percona Mysql 5.7.15-9-log 路径:/app/mysql57 数据文件 ...

  8. Keepalived+Haproxy+Mysql(双主)高可用架构部署

    Keepalived+Haproxy+Mysql(双主)高可用架构部署 一.背景 公司原部署的Mysql架构为keepalived+Mysql双主,但是这个架构有个缺陷是所有的读写请求都在一台机器上( ...

  9. mysql keepalived双主双活_mysql高可用架构方案之中的一个(keepalived+主主双活)

    Mysql双主双活+keepalived实现高可用 文件夹 1.前言... 4 2.方案... 4 2.1.环境及软件... 4 2.2.IP规划... 4 2.3.架构图... 4 3.安装设置MY ...

最新文章

  1. python学习之pip常用命令
  2. Docker安装及配置
  3. c++ 类 A类调用B类
  4. 中台之上(十五):被忽视的产品目录
  5. 2014 ACM/ICPC Asia Regional Xi'an Online
  6. C++字符串的个人理解
  7. 从我开发过的Tensorflow、飞桨、无量框架看深度学习这几年
  8. vue 列表渲染 v-for
  9. 细述 Java垃圾回收机制→How Java Garbage Collection Works?
  10. Python+sklearn训练结果保存与加载(以垃圾邮件分类为例)
  11. 挺起基础软件自主创新的脊梁 锐易特软件荣获2008中国软件信息化创新奖
  12. python教程视频-有没有适合零基础小白学的python教程,视频或者书籍都可以?
  13. 数据库备份和事务日志备份
  14. Java的GUI学习十一(编程菜单)
  15. 没有apihost什么意思_热文:2021年没有立春什么意思
  16. AD Migration Project
  17. linux根文件系统 /etc/shadow文件详解
  18. 理解opencv读取图片后的格式,理解图片矩阵的储存方式
  19. 使用IPMi获取服务器的硬件信息,如风扇转速、cpu等
  20. XTUOJ-1163-ASCII

热门文章

  1. 大文件存储引擎的实现与解析
  2. 【2023 年第三届长三角高校数学建模竞赛】B 题 长三角新能源汽车发展与双碳关系研究 新能源汽车销售相关数据160M+下载
  3. sql server更改列名
  4. 关闭Adobe acrobat的自动更新功能
  5. I2S、PDM、TDM接口
  6. FreePBX 命令一览
  7. CTFHub 文件上传
  8. 现在是不是买房的时候[转]
  9. 基于vivado下pcie dma封装的pcie接口程序
  10. 期刊bibitem格式参考文献批量生成