# MYSQL双主配置

> 来源：梦飞idc云平台 | 原文：https://www.mfisp.com/21080.html | 发布：2023-06-07 | 更新：2023-06-07 | 分类：建站教程

### MYSQL双主配置

 

一、为什么MYSQL要做双主？

 

这样做可以在一定程度上保证主库的高可用,在一台主库down掉之后,可以在极短的时间内切换到另一台主库上（尽可能减少主库宕机对业务造成的影响），减少了主从同步给线上主库带来的压力。  
二、双主的思路

 

搭配keepalived进行使用。keepalived在实际的物理地址的基础上虚化的一个地址（VIP）。对外连接使用的便是这个浮动地址。在一台主机宕机后，这个浮动地址会跑到另外的地址上面。  
mysql双主：指的是两台mysql（masterA&masterB）均可读写，互为主备。两者数据相互同步。通过keepalived对面的浮动地址便可实现高可用。  
缺点也比较明显：一台mysql只负责同步数据（比较空闲），可能存在时延问题。

  

## 二、安装步骤

 

本教程采用mysql5.7，安装方式为rpm安装。

 

## 1、查询是否有安装`旧版本mysql` 。

 

rpm -qa|grep mysql

 

如果有，请卸载。使用命令：

 

rpm -e mysql-***************  
#卸载报错，跳过依赖检查。使用  
rpm -e mysql-**** --nodeps  
#记得也卸载掉mariadb  
rpm -qa|grep mariadb  
rpm -e mariadb-* --nodeps

 

## 2、解压tar包

 

tar -xvf mysql-------.tar

 

## 3、以此安装mysql相关rpm包。`注意版本`

 

rpm -ivh mysql-community-common-5.7.20-1.el6.x86_64.rpm  
rpm -ivh mysql-community-libs-5.7.20-1.el6.x86_64.rpm  
rpm -ivh mysql-community-client-5.7.20-1.el6.x86_64.rpm  
rpm -ivh mysql-community-server-5.7.20-1.el6.x86_64.rpm

 

ps:需要mysql开发环境的记得安装`mysql-community-devel`

 

## 4、启动mysql,查看密码,登录mysql。

 

service mysqld start  
#查看密码，一串字符的东西  
grep 'temporary password' /var/log/mysqld.log  
#默认root用户  
mysql -uroot -p

 

## 5、修改密码、修改密码复杂度、创建用户。

 

#修改密码复杂度  
set global validate_password_policy=0;  
set global validate_password_length=1;  
#修改密码  
set password = password('abcd@test2021');  
#创建用户并赋予权限  
GRANT ALL PRIVILEGES ON *.* TO 'abcd'@'%' IDENTIFIED BY 'abcd@test2021';  
#创建同步用户  
GRANT ALL PRIVILEGES ON *.* TO 'slave_sync'@'%'IDENTIFIED BY 'slave@test2021';  
#刷新配置  
flush privileges;  
#退出数据库  
exit

 

## 6、修改数据库存储目录

 

#设置开机启动  
chkconfig mysqld on  
#停止mysql  
service mysqld stop  
#关闭防火墙  
systemctl stop firewalld.service  
#永久关闭防火墙  
systemctl disable firewalld.service  
#关闭IP tables  
iptables -F  
#修改selinux  
vi /etc/selinux/config  
#修改为下面的，并保存  
SELINUX=disabled  
#及时生效  
setenforce 0  
#创建新的mysql数据存储目录  
mkdir -p /data/mysql_data  
#复制MySQL的相关文件，不建议mv。带上-rp 保证权限不变。  
cp -rp /var/lib/mysql /data/mysql_data  
#修改mysql配置文件  
vi /etc/my.cnf

  

``

---
本页由 梦飞idc云平台（https://www.mfisp.com）提供。站点导航见 https://www.mfisp.com/llms.txt
