用keepalived做mysql高可用

两台机器(centos7系统)安装mysql

bash 复制代码
[root@mysql-keep-master ~]# wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
[root@mysql-keep-master ~]# rpm -ivh mysql80-community-release-el7-3.noarch.rpm
[root@mysql-keep-master ~]# yum -y install yum-utils #安装yum工具包
[root@mysql-keep-master ~]# vim /etc/yum.repos.d/mysql-community.repo
bash 复制代码
安装mysql
[root@mysql-keep-master ~]# yum install -y mysql-community-server
[root@mysql-keep-master ~]# systemctl start mysqld 
[root@mysql-keep-master ~]# systemctl enable mysqld
修改密码
[root@mysql-keep-master ~]# grep pass /var/log/mysqld.log 
2020-02-18T13:54:25.706635Z 1 [Note] A temporary password is generated for root@localhost: %baWi=4!NsT)
[root@mysql-keep-master ~]# mysqladmin -uroot -p'%baWi=4!NsT)' password 'Admin@123!'

制作互为主从:

root@mysql-keep-master \~\]# vim /etc/my.cnf #编辑配置文件开启gtid log-bin=m1.log server-id=1 gtid_mode = ON #开启gtid enforce_gtid_consistency=1 #强制gtid移植性 \[root@mysql-keep-master \~\]# systemctl restart mysqld \[root@mysql-keep-master \~\]# mysql -uroot -p'Admin@123!' #登录数据库 mysql\> GRANT ALL ON \*.\* TO 'root'@'%' IDENTIFIED BY 'Admin@123'; #创建远程登录用户 mysql\> flush privileges; mysql\> grant replication slave,reload,super on \*.\* to 'slave'@'%' identified by 'Admin@123'; ---创建主从授权用户 mysql\> flush privileges; #刷新授权 mysql\> \\e #指定主服务器信息 CHANGE MASTER TO MASTER_HOST='192.168.58.136', #指定主服务器的ip或者主机名 MASTER_USER='slave', #授权用户 MASTER_PASSWORD='QianFeng@123', #授权用户密码 master_auto_position=1 -\> ; 启动slave mysql\> start slave; [root@mysql-keep-backup ~]# vim /etc/my.cnf log-bin=m2.log server-id=2 gtid_mode = ON enforce_gtid_consistency=1 [root@mysql-keep-backup ~]# systemctl restart mysqld [root@mysql-keep-backup ~]# mysql -uroot -p'QianFeng@123!' mysql> GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'QianFeng@123'; mysql> flush privileges; mysql> grant replication slave,reload,super on *.* to 'slave'@'%' identified by 'QianFeng@123'; mysql> flush privileges; 指定主服务器信息 mysql> \e CHANGE MASTER TO MASTER_HOST='192.168.58.135', MASTER_USER='slave', MASTER_PASSWORD='QianFeng@123', master_auto_position=1 -> ; 启动slave mysql> start slave; 两台机器验证是否为yes mysql\> show slave status\\G 两台机器安装keepalived [root@mysql-keep-master ~]# yum -y install keepalived [root@mysql-keep-master ~]# cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak [root@mysql-keep-master ~]# vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { router_id master1 } vrrp_instance VI_1 { state MASTER interface ens33 virtual_router_id 80 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.58.16/24 } } 将配置文件拷贝到backu机器 [root@mysql-keep-backup ~]# mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak [root@mysql-keep-master ~]# scp /etc/keepalived/keepalived.conf 192.168.58.136:/etc/keepalived/ [root@mysql-keep-backup ~]# vim /etc/keepalived/keepalived.conf #修改如下 ! Configuration File for keepalived global_defs { router_id backup1 } vrrp_instance VI_1 { state BACKUP interface ens33 virtual_router_id 80 priority 50 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.58.16/24 } } 两台机器启动keepalived [root@mysql-keep-master ~]# systemctl start keepalived [root@mysql-keep-backup ~]# systemctl start keepalived [root@mysql-keep-master ~]# ip a #vip在master上面 1: lo: mtu 65536 qdisc noqueue state UNKNOWN qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:92:0a:64 brd ff:ff:ff:ff:ff:ff inet 192.168.58.135/24 brd 192.168.58.255 scope global dynamic ens33 valid_lft 1729sec preferred_lft 1729sec inet 192.168.58.16/24 scope global secondary ens33 valid_lft forever preferred_lft forever inet6 fe80::86f4:1d74:ad05:c61c/64 scope link valid_lft forever preferred_lft forever 测试: [root@mysql-keep-master ~]# mysql -uroot -p'Admin@123' -h 192.168.58.16 #登录vip mysql> create database test1; Query OK, 1 row affected (0.07 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | test1 | +--------------------+ 5 rows in set (0.08 sec) 验证 [root@mysql-keep-backup ~]# mysql -uroot -p'Admin@123!' mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | test1 | +--------------------+ 5 rows in set (0.12 sec) [root@mysql-keep-master ~]# systemctl stop keepalived #关闭master [root@mysql-keep-backup ~]# ip a #vip切换backup机器 1: lo: mtu 65536 qdisc noqueue state UNKNOWN qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:a2:0f:5c brd ff:ff:ff:ff:ff:ff inet 192.168.58.136/24 brd 192.168.58.255 scope global dynamic ens33 valid_lft 1547sec preferred_lft 1547sec inet 192.168.58.16/24 scope global secondary ens33 valid_lft forever preferred_lft forever inet6 fe80::af6e:2eff:e2d1:99cb/64 scope link valid_lft forever preferred_lft forever 测试登录 [root@mysql-keep-master ~]# mysql -uroot -p'Admin@123' -h 192.168.58.16

相关推荐
Mr.Pascal5 小时前
Redis:主动更新,读时更新,定时任务。三种的优劣势对比
数据库·redis·缓存
思成不止于此6 小时前
【MySQL 零基础入门】DQL 核心语法(二):表条件查询与分组查询篇
android·数据库·笔记·学习·mysql
骥龙6 小时前
3.10、构建网络防线:防火墙、WAF 与蜜罐实战
服务器·网络·数据库·网络安全
帝吃藕和7 小时前
MySQL 知识点复习- 4. update/delete/like
mysql
gugugu.8 小时前
Redis 字符串类型完全指南:从原理到实战应用
数据库·redis·缓存
杨云龙UP8 小时前
MySQL 自动备份与覆盖恢复实战:一套脚本搞定全库/按库备份恢复
linux·运维·数据库·sql·mysql
workflower9 小时前
PostgreSQL 数据库优化
数据库·团队开发·数据库开发·时序数据库·数据库架构
计算机毕设VX:Fegn089510 小时前
计算机毕业设计|基于springboot + vue服装商城系统(源码+数据库+文档)
数据库·vue.js·spring boot·课程设计
WX-bisheyuange11 小时前
基于Spring Boot的智慧校园管理系统设计与实现
java·大数据·数据库·毕业设计
JavaGuide11 小时前
对标MinIO!全新一代分布式文件系统诞生!
数据库·后端