環境:centos 6.7 mysql 5.6.31(兩臺都一樣)
server1 ip:192.168.209.130
server2 ip:192.168.209.131
一:配置兩臺MySQL主主同步:
MySQL安裝過程省略
設置MySQL登陸密碼:mysqladmin -uroot password
兩臺MySQL創建一樣的庫
然後配置MySQL:
server1: vim /etc/my.cnf
[mysqld]
server-id = 1
log-bin = mysql-bin
auto-increment-increment = 2 #字段變化增量值
auto-increment-offset = 1 #初始字段ID爲1
log-slave-updates
sync_binlog=1
以上這些是需要增加或者修改的
然後重啓:/etc/init.d/mysqld restart
更改server2:
vim /etc/my.cnf
[mysqld]
server-id = 2
log-bin = mysql-bin
auto-increment-increment = 2 #字段變化增量值 (這是根據服務器臺數設定的,我用的兩臺虛擬機)
auto-increment-offset = 2 #初始字段ID爲1
log-slave-updates
sync_binlog=1
以上這些是需要增加或者修改的
然後重啓:/etc/init.d/mysqld restart
登陸server1:mysql -uroot -p
授權:grant replication slave on *.* to 'repl'@'192.168.209.131' identified by'repl';
然後輸入:flush privilegs;
繼續輸入:show master status; 記住file 和position的值
繼續輸入:change master to master_host='192.168.209.131',master_port=3306,master_user='repl',master_password='repl',master_log_file='mysql-bin.000001',master_log_pos=199;
繼續輸入:start slave;
登陸server2:mysql -uroot -p (沒加入環境變量的應該是/usr/local/mysql/bin/mysql -uroot -p )
授權: grant replication slave on *.* to 'repl'@'192.168.209.130' identified by'repl';
然後輸入:flush privileges;
繼續輸入:show master status;
記住file和position的值
繼續輸入:change master to master_host='192.168.209.130',master_port=3306.master_user='repl',master_password='repl',master_log_file='mysql-bin.000002',master_log_pos=120;
繼續輸入:start slave;
配置完畢後在兩臺機器上輸入show slave status\G;查看Slave_IO_Running和Slave_SQL_Running是兩個yes說明配置成功.
然後配置keepalived實現熱備
兩臺機器上安裝keepalived :yum install -y keepalived
在server1上操作:vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id MYSQL_HA
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1
nopreempt #不主動搶佔資源,只在server1這臺優先級高的設置,server2不設置
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.209.128
}
}
virtual_server 192.168.209.128 3306 {
delay_loop 6
# lb_algo rr
# lb_kind NAT
# nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP
real_server 192.168.209.130 3306 {
weight 1
notify_down /usr/local/sbin/mysql.sh #當mysq down時,執行此腳本,殺死keepalived實現切換
TCP_CHECK {
connect_timeout 3 #連接超時
nb_get_retry 3 #重試次數
delay_before_retry 3 #重試間隔時間
}
}
}
然後編輯/usr/local/sbin/mysql.sh
#! /bin/bash
pkill keepalived
保存退出,增加x權限 chmod +x /usr/local/sbin/mysql.sh
在server2上操作:vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id MYSQL_HA
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.209.128
}
}
virtual_server 192.168.209.128 3306 {
delay_loop 6
# lb_algo rr
# lb_kind NAT
# nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP
real_server 192.168.209.131 3306 {
weight 1
notify_down /usr/local/sbin/mysql.sh
TCP_CHECK {
connect_timeout 3 #連接超時
nb_get_retry 3 #重試次數
delay_before_retry 3 #重試間隔時間
}
}
}
保存退出
編輯/usr/local/sbin/mysql.sh
#! /bin/bash
pkill keepalived
保存退出,增加x權限
最後啓動keepalived 我這裏因爲server1比server2優先級高,所以先啓動server1,再啓動server2
啓動完成後查看server1 的vip :ip addr
然後停掉server1上的mysql服務,在server2上查看vip : ip addr 如果server2上有VIP說明切換過來了.
如果server1的mysql重新啓動了,需要手動啓動keepalived高可用繼續生效大概思路就是這樣,版本不同可能操作會有些區別.
mysql高可用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
MySQL数据库集群-PXC方案
wy53780
2020-04-23 13:55:07
sql語法、關係建模
死瘦宅
2019-02-24 22:35:22
MySQL 事務、函數、觸發器、數據庫備份、權限管理
死瘦宅
2019-02-24 22:35:12
《從0到1學習Flink》—— Flink 讀取 Kafka 數據批量寫入到 MySQL
zhisheng
2019-02-24 21:04:11
SpringBoot 填坑 (一) | CentOS7.4 環境下,表時間字段默認值設置失效
一個優秀的廢人
2019-02-24 15:33:55
mysql-存儲過程
雙子城
2019-02-24 13:43:57
jmeter學習指南之操作 mysql 數據庫
小強測試
2019-02-24 13:34:06
20190222全天的實驗
清歡難尋
2019-02-24 13:17:21
數據庫監控:zabbix(fpmmm)
AMGYM
2019-02-24 13:05:14
數據庫監控:nagios(check_mysql_health)
AMGYM
2019-02-24 13:05:14
如何釋放已刪除的InnoDB磁盤空間
lvrenX
2019-02-24 13:04:33
MYSQL中視圖的使用
雙子城
2019-02-24 08:44:17
MySQL從刪庫到跑路
司木
2019-02-24 00:24:07
JavaBean操作
yi_sixian
2019-02-23 14:05:20
fdb2b技術博客簡介
fdb2b
2019-02-23 14:01:03