用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

相关推荐
fen_fen42 分钟前
用户信息表建表及批量插入 100 条数据(MySQL/Oracle)
数据库·mysql·oracle
马克Markorg7 小时前
常见的向量数据库和具有向量数据库能力的数据库
数据库
Coder_Boy_9 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
helloworldandy9 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
数据知道11 小时前
PostgreSQL 故障排查:如何找出数据库中最耗时的 SQL 语句
数据库·sql·postgresql
qq_124987075311 小时前
基于SSM的动物保护系统的设计与实现(源码+论文+部署+安装)
java·数据库·spring boot·毕业设计·ssm·计算机毕业设计
枷锁—sha11 小时前
【SRC】SQL注入WAF 绕过应对策略(二)
网络·数据库·python·sql·安全·网络安全
Coder_Boy_11 小时前
基于SpringAI的在线考试系统-考试系统开发流程案例
java·数据库·人工智能·spring boot·后端
Gain_chance11 小时前
35-学习笔记尚硅谷数仓搭建-DWS层最近n日汇总表及历史至今汇总表建表语句
数据库·数据仓库·hive·笔记·学习
此生只爱蛋12 小时前
【Redis】主从复制
数据库·redis