用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

相关推荐
广州智造4 小时前
OptiStruct实例:3D实体转子分析
数据库·人工智能·算法·机器学习·数学建模·3d·性能优化
技术宝哥7 小时前
Redis(2):Redis + Lua为什么可以实现原子性
数据库·redis·lua
学地理的小胖砸9 小时前
【Python 操作 MySQL 数据库】
数据库·python·mysql
dddaidai1239 小时前
Redis解析
数据库·redis·缓存
数据库幼崽9 小时前
MySQL 8.0 OCP 1Z0-908 121-130题
数据库·mysql·ocp
Amctwd10 小时前
【SQL】如何在 SQL 中统计结构化字符串的特征频率
数据库·sql
betazhou10 小时前
基于Linux环境实现Oracle goldengate远程抽取MySQL同步数据到MySQL
linux·数据库·mysql·oracle·ogg
lyrhhhhhhhh11 小时前
Spring 框架 JDBC 模板技术详解
java·数据库·spring
喝醉的小喵12 小时前
【mysql】并发 Insert 的死锁问题 第二弹
数据库·后端·mysql·死锁
付出不多12 小时前
Linux——mysql主从复制与读写分离
数据库·mysql