MYSQL雙主配置
一、為什么MYSQL要做雙主?
這樣做可以在一定程度上保證主庫(kù)的高可用,在一臺(tái)主庫(kù)down掉之后,可以在極短的時(shí)間內(nèi)切換到另一臺(tái)主庫(kù)上(盡可能減少主庫(kù)宕機(jī)對(duì)業(yè)務(wù)造成的影響),減少了主從同步給線上主庫(kù)帶來(lái)的壓力。
二、雙主的思路
搭配keepalived進(jìn)行使用。keepalived在實(shí)際的物理地址的基礎(chǔ)上虛化的一個(gè)地址(VIP)。對(duì)外連接使用的便是這個(gè)浮動(dòng)地址。在一臺(tái)主機(jī)宕機(jī)后,這個(gè)浮動(dòng)地址會(huì)跑到另外的地址上面。
mysql雙主:指的是兩臺(tái)mysql(masterA&masterB)均可讀寫(xiě),互為主備。兩者數(shù)據(jù)相互同步。通過(guò)keepalived對(duì)面的浮動(dòng)地址便可實(shí)現(xiàn)高可用。
缺點(diǎn)也比較明顯:一臺(tái)mysql只負(fù)責(zé)同步數(shù)據(jù)(比較空閑),可能存在時(shí)延問(wèn)題。
二、安裝步驟
本教程采用mysql5.7,安裝方式為rpm安裝。
1、查詢(xún)是否有安裝舊版本mysql
。
rpm -qa|grep mysql
如果有,請(qǐng)卸載。使用命令:
rpm -e mysql-***************
#卸載報(bào)錯(cuò),跳過(guò)依賴(lài)檢查。使用
rpm -e mysql-**** --nodeps
#記得也卸載掉mariadb
rpm -qa|grep mariadb
rpm -e mariadb-* ?--nodeps
2、解壓tar包
tar -xvf mysql-------.tar
3、以此安裝mysql相關(guān)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開(kāi)發(fā)環(huán)境的記得安裝mysql-community-devel
4、啟動(dòng)mysql,查看密碼,登錄mysql。
service mysqld start
#查看密碼,一串字符的東西
grep 'temporary password' /var/log/mysqld.log
#默認(rèn)root用戶(hù)
mysql -uroot -p
5、修改密碼、修改密碼復(fù)雜度、創(chuàng)建用戶(hù)。
#修改密碼復(fù)雜度
set global validate_password_policy=0;
set global validate_password_length=1;
#修改密碼
set password = password('abcd@test2021');
#創(chuàng)建用戶(hù)并賦予權(quán)限
GRANT ALL PRIVILEGES ON *.* TO 'abcd'@'%' IDENTIFIED BY 'abcd@test2021';
#創(chuàng)建同步用戶(hù)
GRANT ALL PRIVILEGES ON *.* TO 'slave_sync'@'%'IDENTIFIED BY 'slave@test2021';
#刷新配置
flush privileges;
#退出數(shù)據(jù)庫(kù)
exit
6、修改數(shù)據(jù)庫(kù)存儲(chǔ)目錄
#設(shè)置開(kāi)機(jī)啟動(dòng)
chkconfig mysqld on
#停止mysql
service mysqld stop
#關(guān)閉防火墻
systemctl stop firewalld.service
#永久關(guān)閉防火墻
systemctl disable firewalld.service
#關(guān)閉IP tables
iptables -F
#修改selinux
vi /etc/selinux/config
#修改為下面的,并保存
SELINUX=disabled
#及時(shí)生效
setenforce 0
#創(chuàng)建新的mysql數(shù)據(jù)存儲(chǔ)目錄
mkdir -p /data/mysql_data
#復(fù)制MySQL的相關(guān)文件,不建議mv。帶上-rp 保證權(quán)限不變。
cp -rp /var/lib/mysql /data/mysql_data
#修改mysql配置文件
vi /etc/my.cnf
?