我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Mysql数据库高可用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Mysql数据库高可用

Mysql数据库高可用

Mysql(5.7.19)+keepalive(1.3.0)    +RHEL6.5

Mysql下载地址

https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz

Keepalived地址

http://www.keepalived.org/software/keepalived-1.3.0.tar.gz

规划如下


ip

端口

备注

Mysql1

172.25.254.120

3306


Mysql2

172.25.254.130

3306


keepalived

172.25.254.111



 

一:首先搭建主主数据库

拷贝压缩包到系统/mnt下

cd /mnt/

tar xvf mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz

cp -a mysql-5.7.19-linux-glibc2.12-x86_64 /usr/local/mysql

useradd mysql

cd /usr/local/mysql/

cd bin/

./mysqld  --initialize

./mysql_install_db --user=mysql --basedir=/var/lib/mysql --datadir=/var/lib/mysql/data

chown -R mysql  /var/lib/mysql/data/

./mysqld_safe --user=mysql

cd ..

cp support-files/mysql.server /etc/init.d/mysqld

rm -rf /etc/my.cnf

cat <<eof >/etc/my.cnf

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

 

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

eof

 

 

ln -s /usr/local/mysql/bin/mysql /bin/mysql

cd bin/

service mysqld start

sed  -i '5askip-grant-tables' /etc/my.cnf

sed  -i '$a[mysql]' /etc/my.cnf

sed  -i '$asocket=/var/lib/mysql/mysql.sock' /etc/my.cnf

service mysqld restart

 

mysql   -e "update mysql.user set authentication_string=password('123456') where user='root' and Host='localhost';"

sed -i '/skip-grant-tables/d' /etc/my.cnf

service mysqld restart

 

mysql -uroot -p123456

SQL>set password = password('123456');

 

 

sed  -i '/\[mysqld\]$/alog-bin=/var/lib/mysql/log-bin' /etc/my.cnf

sed  -i '/\[mysqld\]$/aserver_id=130' /etc/my.cnf #两个id不一样即可

service mysqld restart

 

至此两个数据库搭建完成

二:主主搭建

mysql -uroot -p123456#登陆数据库

grant   replication    slave  on  *.*    to   slaveuser@"172.25.254.120"   identified by "123456";#130上配置

grant   replication    slave  on  *.*    to   slaveuser@"172.25.254.130"   identified by "123456";#120上配置

登陆测试是否成功

mysql> show master status\G;#分别查看两个节点

****************** 1. row ***************************

             File: log-bin.000001

         Position: 154

change   master   to   master_host="172.25.254.120",master_user="slaveuser",master_password="123456",master_log_file="log-bin.000001",master_log_pos=154;#130上操作

change   master   to   master_host="172.25.254.130",master_user="slaveuser",master_password="123456",master_log_file="log-bin.000001",master_log_pos=154;#120上操作

 

start   slave;#两节点分别开启

show  slave status\G;

Slave_IO_Running: YES

Slave_SQL_Running: YES

 

可以自己测试

三:keepalived搭建

cd /mnt/

tar xvf keepalived-1.3.0.tar.gz

yum -y install gcc gcc-c++ openssl-devel

cd keepalived-1.3.0

./configure

make  && make install

mkdir /etc/keepalived

cd /usr/local/etc/

cp -a keepalived/keepalived.conf /etc/keepalived/

cp sysconfig/keepalived /etc/sysconfig/

 


cat /etc/keepalived/keepalived.conf

! Configuration File for keepalived

 

global_defs {

router_id

}

 

vrrp_sync_group VGM{

group{

HA

}

}

vrrp_script check_mysql {

script "/root/check_mysql.sh"#脚本文件

interval 5

}

vrrp_instance HA {

    state MASTER#从BACKUP

    interface eth0

    virtual_router_id 51

    priority 100#从99

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        172.25.254.111/24 dev eth0

    }

    track_script {

check_mysql

}

}

 

cat /root/check_mysql.sh #脚本文件

b=`ps aux | grep mysql | grep sqld | wc -l`

if [ $b == 0 ]

then

service mysqld restart

    c=`ps aux | grep mysql | grep sqld | wc -l` 

if [ $c == 0 ]

then

kill -9 `ps aux | grep keep | grep lived | awk '{print $2}'`

fi

fi

a=`ps aux | grep keep | grep lived |wc -l`

if [ $a == 0 ]

then

sleep 300

reboot

fi


 

测试,与开机启动不在次次试验中,可自行测试


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Mysql数据库高可用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

linux系统mysql数据库MHA高可用
2018-05-17

MySQL INSERT锁与数据库高可用方案

MySQL INSERT锁是指在向数据库中插入新数据时,会对相关表进行加锁操作,防止其他操作对该表进行修改或插入操作。这种锁可以保证数据的一致性和完整性,但有可能会导致性能下降,特别是在高并发的情况下。对于数据库高可用方案,可以考虑以下几
MySQL INSERT锁与数据库高可用方案
2024-08-18

数据库学习之十三:mysql高可用配置

十三、mysql高可用1、普通主从复制架构存在的不足高可用?业务不间断的工作。用户的体验不出来业务断点。普通主从环境,存在的问题:1、监控的问题:APP应用程序,并不具备监控数据库的功能,没有责任监控数据库是否能连接。2、选主的问题:3、failover:VI
数据库学习之十三:mysql高可用配置
2019-12-19

MySQL INSERT锁与数据库高可用架构的选择

在MySQL中,INSERT锁是一种排他锁,用于阻止其他事务在插入数据时对同一行数据进行修改。这种锁在插入数据时会自动被获取,确保数据的一致性和完整性。当涉及到数据库高可用架构的选择时,应该考虑以下几点:主从复制:主从复制是最常见的高可用
MySQL INSERT锁与数据库高可用架构的选择
2024-08-14

mycat和mysql搭建高可用企业数据库集群

mycat 基础 mycat 作用   当 mysql 为 1主一从的时候,mycat 支持写DB高可用,即当主挂了,那么可以写入从数据库中 将数据库看出一个蛋糕: 垂直切分,类似 上下切,水平就是 左右切 每个数据库库连接数是有限的,如果连
mycat和mysql搭建高可用企业数据库集群
2021-11-03

PXC高可用数据库安装部署

说明Percona XtraDB Cluster(简称PXC),是由percona公司推出的mysql集群解决方案。特点是每个节点都能进行读写,且都保存全量的数据。也就是说在任何一个节点进行写入操作,都会同步给其它所有节点写入到自己的磁盘。这点跟Oracle

	PXC高可用数据库安装部署
2021-03-14

如何在MySQL数据库中实现MHA高可用配置

本篇文章给大家分享的是有关如何在MySQL数据库中实现MHA高可用配置,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、MHA介绍(一)、什么是MHAMHA(MasterHig
2023-06-06

SQL Server 2012 搭建数据库AlwaysOn(数据库高可用集群)

要实现数据库高可用集群,需要考虑以下几个方面:1. 数据库选择选择一个支持高可用的编程客栈数据库。目前常用的高可用http://www.cppcns.com数据库包括mysql cluster、MongoDB、PostgreSQL、or
2023-05-05

编程热搜

目录