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
?