1、架构

vip 192.168..45.244

mysql-1:192.168.45.238

mysql-2:192.168.45.239

2、mysql双主设置

192.168.45.238

#vim /etc/my.cnf

[client]

port            = 3306

socket          = /tmp/mysql.sock

[mysqld]

port            = 3306

socket          = /tmp/mysql.sock

datadir=/usr/local/mysql/var/

skip-locking

skip-name-resolve

key_buffer = 64M

max_allowed_packet = 64M

table_cache = 2048

sort_buffer_size = 4M

net_buffer_length = 256K

read_buffer_size = 10M

read_rnd_buffer_size = 10M

myisam_sort_buffer_size = 16M

interactive_timeout = 240

wait_timeout = 240

max_connections = 800

connect_timeout=30

open_files_limit=8192

query_cache_size = 1024M

thread_cache_size=16

thread_concurrency = 8

long_query_time = 1

log-slow-queries = slow.log

innodb_additional_mem_pool_size = 8M

innodb_buffer_pool_size = 32M

innodb_log_buffer_size=8M

innodb_log_file_size = 256M

innodb_log_files_in_group = 3

innodb_file_io_threads = 8

innodb_lock_wait_timeout= 50

innodb_thread_concurrency = 16

innodb_file_per_table

log_slave_updates

expire_logs_days=7

auto_increment_increment=2

auto_increment_offset=2

binlog_format=mixed

log-bin=mysql-bin

server-id       = 8

[mysqldump]

quick

max_allowed_packet = 16M

[mysql]

no-auto-rehash

[isamchk]

key_buffer = 20M

sort_buffer_size = 20M

read_buffer = 2M

write_buffer = 2M

[myisamchk]

key_buffer = 20M

sort_buffer_size = 20M

read_buffer = 2M

write_buffer = 2M

[mysqlhotcopy]

interactive-timeout

设置mysql复制账号

mysql>GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.45.238' IDENTIFIED BY 'repl_123';

mysql>GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.45.239' IDENTIFIED BY 'repl_123';

导出数据库

#mysqldump -uroot -p --single-transaction --flush-logs --master-data=2 --all-databases > all.sql

192.168.45.239

mysql配置

#vim /etc/my.cnf

[client]

port            = 3306

socket          = /tmp/mysql.sock

[mysqld]

port            = 3306

socket          = /tmp/mysql.sock

datadir=/usr/local/mysql/var/

skip-locking

skip-name-resolve

key_buffer = 64M

max_allowed_packet = 64M

table_cache = 128

sort_buffer_size = 4M

net_buffer_length = 256K

read_buffer_size = 10M

read_rnd_buffer_size = 10M

myisam_sort_buffer_size = 64M

interactive_timeout = 240

wait_timeout = 240

max_connections = 800

connect_timeout=30

open_files_limit=8192

query_cache_size = 1024M

thread_cache_size=16

thread_concurrency = 8

long_query_time = 1

log-slow-queries = slow.log

innodb_additional_mem_pool_size = 8M

innodb_buffer_pool_size = 64M

innodb_log_buffer_size=8M

innodb_log_file_size = 256M

innodb_log_files_in_group = 3

innodb_file_io_threads = 8

innodb_lock_wait_timeout= 50

innodb_thread_concurrency = 16

innodb_file_per_table

log_slave_updates

expire_logs_days=7

auto_increment_increment=2

auto_increment_offset=1

binlog_format=mixed

log-bin=mysql-bin

server-id       = 9

[mysqldump]

quick

max_allowed_packet = 16M

[mysql]

no-auto-rehash

[isamchk]

key_buffer = 20M

sort_buffer_size = 20M

read_buffer = 2M

write_buffer = 2M

[myisamchk]

key_buffer = 20M

sort_buffer_size = 20M

read_buffer = 2M

write_buffer = 2M

[mysqlhotcopy]

interactive-timeout

导入主库数据

#mysql -uroot -p < all.sql

设置同步

mysql> CHANGE MASTER TO MASTER_HOST='192.168.45.238',MASTER_PORT='3306',MASTER_USER='repl',MASTER_PASSWORD='repl_123',MASTER_LOG_FILE='mysql-bin.000004',MASTER_LOG_POS=106;

mysql> start slave;

在192.168.45.238上设置同步

mysql>CHANGE MASTER TOMASTER_HOST='192.168.45.239',MASTER_PORT='3306',MASTER_USER='repl',MASTER_PASSWORD='repl_123',MASTER_LOG_FILE='mysql-bin.000008',MASTER_LOG_POS=105020214;

mysql>start slave;

3、配置keepalived

192.168.45.238

192.168.45.239

安装keepalived

wget http://www.keepalived.org/software/keepalived-1.2.2.tar.gz

tar zxvf keepalived-1.2.2.tar.gz

cd keepalived-1.2.2

./configure --prefix=/

make

make install

192.168.45.238 keepalived 配置

6># vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

router_id yuangnag.com

}

vrrp_script check_run {

script "/root/keepalived_check_mysql.sh"

interval 5

}

vrrp_sync_group VG1 {

group {

VI_1

}

}

vrrp_instance VI_1 {

state MASTER

interface eth0

virtual_router_id 88

priority 100

advert_int 1

nopreempt

authentication {

auth_type PASS

auth_pass yuangang.net

}

track_script {

check_run

}

virtual_ipaddress {

192.168.45.244

}

}

检测mysql脚本配置(两台mysql一样的配置)

#vim #!/bin/bash

MYSQL=/usr/local/mysql/bin/mysql

MYSQL_HOST=localhost

MYSQL_USER=root

MYSQL_PASSWORD=

CHECK_TIME=3

#mysql  is working MYSQL_OK is 1 , mysql down MYSQL_OK is 0

MYSQL_OK=1

function check_mysql_helth (){

$MYSQL -h $MYSQL_HOST -u $MYSQL_USER -e "show status;" >/dev/null 2>&1

if [ $? = 0 ] ;then

MYSQL_OK=1

else

MYSQL_OK=0

fi

return $MYSQL_OK

}

while [ $CHECK_TIME -ne 0 ]

do

let "CHECK_TIME -= 1"

check_mysql_helth

if [ $MYSQL_OK = 1 ] ; then

CHECK_TIME=0

exit 0

fi

if [ $MYSQL_OK -eq 0 ] &&  [ $CHECK_TIME -eq 0 ]

then

/etc/init.d/keepalived stop

exit 1

fi

sleep 1

done

#!/bin/bash

MYSQL=/usr/local/mysql/bin/mysql

MYSQL_HOST=localhost

MYSQL_USER=root

MYSQL_PASSWORD=

CHECK_TIME=3

#mysql  is working MYSQL_OK is 1 , mysql down MYSQL_OK is 0

MYSQL_OK=1

function check_mysql_helth (){

$MYSQL -h $MYSQL_HOST -u $MYSQL_USER -e "show status;" >/dev/null 2>&1

if [ $? = 0 ] ;then

MYSQL_OK=1

else

MYSQL_OK=0

fi

return $MYSQL_OK

}

while [ $CHECK_TIME -ne 0 ]

do

let "CHECK_TIME -= 1"

check_mysql_helth

if [ $MYSQL_OK = 1 ] ; then

CHECK_TIME=0

exit 0

fi

if [ $MYSQL_OK -eq 0 ] &&  [ $CHECK_TIME -eq 0 ]

then

/etc/init.d/keepalived stop

exit 1

fi

sleep 1

done

chmod 755  /root/keepalived_check_mysql.sh

192.168.45.239 keepalived配置

# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

router_id yuangang.com

}

vrrp_script check_run {

script "/root/keepalived_check_mysql.sh"

interval 5

}

vrrp_sync_group VG1 {

group {

VI_1

}

}

vrrp_instance VI_1 {

state BACKUP

interface eth0

virtual_router_id 88

priority 80

advert_int 1

authentication {

auth_type PASS

auth_pass yuangang.com

}

track_script {

check_run

}

virtual_ipaddress {

192.168.45.244

}

}

启动 238上的keepalived mysql

/etc/init.d/keepalived start

/etc/init.d/mysqld start

启动239上的keepalived mysql

/etc/init.d/keepalived start

/etc/init.d/mysqld start

测试,关闭238上的mysql在另外一台机器上用vip连接mysql

关闭239上的mysql在另外一台机器上用vip连接mysql

作者“linux运维”

双A复制mysql_mysql双主复制并利用keepalived做高可用相关推荐

  1. mysql主主keepalived_MySQL主主复制以及使用keepalived保证高可用

    1:准备工作 MySQL的安装步骤在此处省略:安装完成一定要做以下准备工作,初始化MySQL,/usr/bin/mysql_secure_installation,设置root密码,删除无效账户以及t ...

  2. 单主复制与多主复制入门

    单主复制 单主复制,也称主从复制.写入主节点的数据都需要复制到从节点,即存储数据库副本的节点.当客户要写入数据库时,他们必须将请求发送给主节点,而后主节点将这些数据转换为复制日志或修改数据流发送给其所 ...

  3. mysql主主keepalived_MySQL主主+Keepalived实现高可用

    在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主主方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动.因此,如果是双主或者多主,就会增加mysql入 ...

  4. OpenResty+Keepalived组建高可用集群+双主模式

    * 环境: system version:CentOS Linux release 7.5.1804 (Core) 3.10.0-862.9.1.el7.x86_64 nginx version:op ...

  5. keepalived mysql集群_mysql双主+keepalived实现高可用集群

    master-a端: 1)安装keepalived [[email protected] ~]# [[email protected] ~]# yum install keepalived 安装kee ...

  6. 双机热备(双主模式)——实现数据库的高可用

    1.搭建双主机 <总说明:实现此功能需要用到mycat> 问题:如果根据如下的配置实现数据库的代理,如果数据库主库宕机,则直接影响整个程序的执行.所以需要实现高可用机制. 高可用实现的问题 ...

  7. mysql主备在同一台_MySQL高可用(一)主备同步:MySQL是如何保证主备一致的

    主备同步,也叫主从复制,是MySQL提供的一种高可用的解决方案,保证主备数据一致性的解决方案. 在生产环境中,会有很多不可控因素,例如数据库服务挂了.为了保证应用的高可用,数据库也必须要是高可用的. ...

  8. c mysql 双主复制_mysql双主复制及使用keepalived作高可用的配置详解

    1.系统环境架构 vip 192.168..45.244 mysql-1:192.168.45.238 mysql-2:192.168.45.239 2.mysql双主设置 192.168.45.23 ...

  9. mysql双主故障自动切换_MySQL主库高可用 -- 双主单活故障自动切换方案

    前言:(PS:前言是后来修改本文时加的)对于这篇文章,有博友提出了一些疑问和见解, 有了博友的关注,也促使我想把这套东西做的更实用.更安全.后来又经过思考,对脚本中一些条件和行为做了些改变.经过几次修 ...

  10. mysql主主复制+keepalived 打造高可用mysql集群

    为了响应公司需求,打造出更安全的mysql集群,能够实现mysql故障后切换,研究了几天终于有了成果,一起分享一下. 首先介绍一下这套集群方案实现的功能 1.mysql服务器故障后自动转移,修好后自动 ...

最新文章

  1. vue+elementUI项目的踩坑~~持续更新
  2. matlab和C如何混编
  3. mysql获取时间_时间类型_时间格式化
  4. mysql容器操作_如何使用运行MySQL构建Docker容器?
  5. 三种CSS样式的引用方式
  6. iOS-数据持久化-偏好设置
  7. 关于Dapper.NET的相关论述
  8. 带有Prometheus的Spring Boot和测微表第6部分:保护指标
  9. 电工接线模拟仿真软件_VERICUT数控加工仿真软件,最强的数控加工模拟软件,你知道么?...
  10. php+flash实现转盘抽奖(加源代码)
  11. Typescript有什么冷门但是很好用的特性?
  12. Python 函数(参数组合)
  13. 在DevStack中使用Systemd
  14. linux 内核 介绍,Linux内核详细介绍
  15. 中文版的XP转换为英文版的XP和XP多国语言包
  16. Matpower安装流程
  17. 万娟 白话大数据和机械学习_白话大数据与机器学习 (高扬著) 带书签目录 完整pdf扫描版[71MB]...
  18. unity android 不锁屏,Unity 实现Android不锁屏
  19. 定时器 java qua_spring项目中使用定时任务
  20. Pathon 连接数据库

热门文章

  1. 普通用户登录PLSQL后提示空白OK对话框错误
  2. [Jsoi2010]连通数
  3. LinkButton(按钮)
  4. 窗体点击,空白处隐藏(stopPropagation)
  5. Delphi程序结构
  6. 将给定的字符串划分为所有可能的IP地址 Restore IP Addresses
  7. ScreenRecord(about C# winform)
  8. Java_一致性哈希算法与Java实现
  9. javascript amp;amp; 和 || 最清晰的描述
  10. 如何清空其他终端上的屏幕