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.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

1)、设置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';

2)、导出数据库 代码示例:

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

192.168.45.239

3)、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

4)、导入主库数据 代码示例:

#mysql -uroot -p < all.sql

5)、设置同步 代码示例:

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

1)、安装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

2)、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

}

}

3)、检测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

加上权限: 代码示例:

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

authenti

cation {

auth_type PASS

auth_pass yuangang.com

}

track_script {

check_run

}

virtual_ipaddress {

192.168.45.244

}

}

1.启动 238上的keepalived mysql 代码示例:

/etc/init.d/keepalived s

tart

/etc/

init.d/mysqld start

2.启动239上的keepalived mysql 代码示例:

/etc/init.d/keepalived start

/etc/init.d/mysqld start

测试:

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552707.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql jdbc execute_JDBC中execute、executeQuery和executeUpdate的区别

欢迎大家访问我的个人博客(https://zhuchuanliang.github.io)&#xff0c;才刚刚开始搞&#xff0c;还有很多要改进的地方&#xff0c;希望大家指点。Statement 接口提供了三种执行 SQL 语句的方法&#xff1a;executeQuery、executeUpdate 和 execute。使用哪一个方法由 SQL 语…

mysql和jfinal的区别_mysql与JFinal的数据关系-阿里云开发者社区

mysql与jfinal在使用过程中&#xff0c;一定要弄清楚数据关系&#xff0c;否则容易发生类型不匹配的错误。一、关系整理为此&#xff0c;我根据jfinal的源码和mysql的数据字段类型&#xff0c;整理列表如下&#xff1a;mysqljfinal例子编号varchar, char, enum, set, text, tin…

mysql server_id作用_MySQL复制过程中server-id的理解

一. server-id做什么用的&#xff0c;你知道吗&#xff1f;1、 MySQL的同步的数据中是包含server-id的&#xff0c;用于标识该语句最初是从哪个server写入的&#xff0c;所以server-id一定要有的2、 每一个同步中的slave在master上都对应一个master线程&#xff0c;该线程就…

java如何解析cron成可视化_宅家30天,2万字节java高级工程师面试题解析,如何斩获阿里p7...

宅家里一个月&#xff0c;“闭关修炼”的你是不是正在为金三银四跳槽季发愁呢&#xff1f;小编今天说的这富含的15个互联网大厂Java高级工程师核心面试问题整理&#xff01;内容包括&#xff1a;kafka面试题及解析18道ZooKeeper面试题及解析28道Linux 面试真题及解析45道MySQL面…

java接口如何接受语音参数_Java 是如何优雅地实现接口数据校验的?

作者 | 无敌码农 责编 | 张文头图 | CSDN 下载自东方 IC来源 | 无敌码农(ID&#xff1a;jiangqiaodege)本篇文章给大家分享平时开发中总结的一点小技巧&#xff01;在工作中写过 Java 程序的朋友都知道&#xff0c;目前使用 Java 开发服务最主流的方式就是通过 Spring MVC 定义…

msp430单片机 温度计编程_MSP430系列与89C5l系列的比较

1、89C51单片机是8位单片机。其指令是采用的被称为“CISC”的复杂指令集&#xff0c;共具有111条指令。而MSP430单片机是16位的单片机&#xff0c;采用了精简指令集(RISC)结构&#xff0c;只有简洁的27条指令&#xff0c;大量的指令则是模拟指令&#xff0c;众多的寄存器以及片…

php 正则表达式提取出合法的时间_PHP正则表达式核心技术完全详解 第1节

PHP正则表达式核心技术 第1节正则表达式: 就是描述字符串排列模式的一种自定义语法规则、也是用于描述字符串排列 或 匹配模式的一种语法规则、正则表达式: 就是用于描述字符串排列 或 匹配模式的一种语法规则、它主要用于字符串的: 分割字符串、查找字符串、替换字符串 的一系…

anacoda2如何连接使用mysql_Anaconda 安装 Python 库(MySQLdb)的方法-(转)

安装python库的过程中&#xff0c;最重要的地方就是版本需要兼容。其中操作系统为64位&#xff0c;Python为2.X 64位&#xff0c;下载安装文件的时候也要注意版本匹配。其中文件名中包含的cp27表示CPython 2.7版本&#xff0c;cp34表示CPython 3.4&#xff0c;win_amd64指的是6…

mysql 字段等于select_mysql_select_计算字段_数据处理函数_5

二十一、创建计算字段1、 concat() 把两个字段拼接起来select concat(lie_name1,间隔符&#xff0c;lie_name2) fromtable_name;选择出 name-type(price)这样的格式输出&#xff0c;按id从小到大排序mysql> selectconcat(name,-,type,(,price,)) from goods order by id;--…

php mysql随机记录_php随机取mysql记录方法小结

这篇文章主要介绍了php随机取mysql记录方法,实例分析了几种常见的随机获取mysql数据的方法,是非常实用的技巧,具有一定的参考借鉴价值,需要的朋友可以参考下本文实例总结了php随机取mysql记录方法。分享给大家供大家参考。具体分析如下&#xff1a;在php中要随机取mysql记录我们…

mysql 主从备份问题_我遇到的mysql主从同步的问题

测试mysql主从同步的问题&#xff0c;主从同步test库。主库&#xff1a;rootttt 11:00>use test;Database changedroottest 11:00>show tables;----------------| Tables_in_test |----------------| a |----------------从库&#xff1a;root(none) 11:01>use test;D…

中西方对时间的差异_中西文化的差异-2 时间观

中西文化的差异-2 时间观时间和空间存在不可思议的相似性。因此&#xff0c;人们对时间的不同理解可分为两种时空观念———直线型和循环型。大体而言&#xff0c;英语国家的人认为时间是直线型&#xff0c;客观顺序是把事件分为过去&#xff0c;现在&#xff0c;将来三种时态(…

java开发环境怎么写_Java开发基础设置:如何配置Java运行环境

很多朋友都有自学Java的愿望&#xff0c;但是自学一门语言何其艰难&#xff0c;没人指引的话往往不得其门而入。那么&#xff0c;今天千锋老师就给大家带来Java入门课程中配置Java运行环境的方法&#xff0c;希望能够对大家有所帮助。一、JDK安装 什么是JVMJava Virtual Machin…

被动声呐 相移波束形成_100天计划-DAY9-拖曳声呐

拖曳线列阵声纳是拖曳在距舰船尾部一定距离的声接收系统&#xff08;通常称为线列阵&#xff09;&#xff0c;通过接收航行目标自身辐射的噪声或者通过接收目标反射回来的信号&#xff0c;来检测目标的有无并估计目标有关参数。拖曳线列阵声纳可以分为主动、被动和主被动联合三…

mongodb转实体对像_MongoDB:实体对象(javabean)转DBObject

packageutils;importjava.lang.reflect.Field;importcom.mongodb.BasicDBObject;importcom.mongodb.DBObject;importpojo.User;public classBeanFromDBObject {/*** Description:bean-->DBObject*parambean*returnDBObject 返回类型*/public static DBObject getDBObject(T …

mysql四种隔离级别知乎_详解MySQL事务的四大特性和隔离级别

1、事务的四大特性(ACID)1.1、原子性(Atomicity) 原子性是指事务包含的一系列操作要么全部成功&#xff0c;要么全部回滚&#xff0c;不存在部分成功或者部分回滚&#xff0c;是一个不可分割的操作整体。1.2、一致性(Consistency)一致性是可以理解为事务对数据完整性约束的遵循…

mysql唯一索引弊端_MySQL 关于唯一索引和普通索引的抉择

想象这样一个场景&#xff0c;在设计一张用户表时&#xff0c;每人的身份证号是唯一的&#xff0c;需要搜索。但由于身份证号字段较大&#xff0c;不好将其作为主键。在业务代码已经保证插入身份证唯一的情况下&#xff0c;可以选择建立唯一索引和普通普通索引&#xff0c;这时…

mysql 8 my.cfg_搭建lamp环境以及安装配置phpmyadmin

接下来配置phpmyadminphpMyAdmin是一种MySQL的管理工具,它直接从web上去管理MySQL. 假设你的web(网页存放)根目录是 /var/www/ 假设你的主机web访问是这样的http://192.168.1.11/ 你可以把他安装到 /var/www/phpmyadmin 当然也可是/var/www/的任意下级目录 注意phpMyAdmi…

mysql触发器 err 1064_MySQL触发器定义 - 1064错误

我建议的触发器&#xff1a;#START TRIGGERdelimiter //DECLARE msg VARCHAR(255);CREATE TRIGGER passStandard_check BEFORE INSERT ON ModuleFOR EACH ROWBEGINIF NEW.passStandard < 0 || NEW.passStandard > 1 THENset msg concat(Trigger Error: Pass Standard: ,…

mysql按中文拼音字母排序_解析MySQL按常规排序、自定义排序和按中文拼音字母排序的方法...

MySQL常规排序、自定义排序和按中文拼音字母排序&#xff0c;在实际的SQL编写时&#xff0c;我们有时候需要对条件集合进行排序。下面给出3种比较常用的排序方式&#xff0c;一起看看吧MySQL常规排序、自定义排序和按中文拼音字母排序&#xff0c;在实际的SQL编写时&#xff0c…