日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 主从 keepalived_MySQL之双向主从加keepalived高可用

發(fā)布時(shí)間:2023/12/10 数据库 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 主从 keepalived_MySQL之双向主从加keepalived高可用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近在做MySQL數(shù)據(jù)庫的雙向主從,了解到keepalived能夠自動(dòng)判斷并切換到可用數(shù)據(jù)庫,自己試了一下,整理出文檔來。

先聲明一下環(huán)境

iptables開啟3306端口或者關(guān)掉,關(guān)閉selinux

MySQL-01:192.168.204.138

MySQL-02:192.168.204.139

VIP:192.168.204.200?????????????#web服務(wù)器連接的ip,自己可以使用工具連接試一下。

MySQL的安裝過程就略過了,根據(jù)個(gè)人情況自己安裝即可。

1.修改數(shù)據(jù)庫的配置文件/etc/my.cnf:

1.1修改MySQL-01的數(shù)據(jù)庫文件,在[mysql]下添加如下內(nèi)容server_id?=?1

log_bin?=?mysql-bin

1.2修改MySQL-02的數(shù)據(jù)庫文件,在[mysql]下添加如下內(nèi)容server_id?=?2

log_bin?=?mysql-bin

2.搭建單向主從

2.1在MySQL-01上

2.1.1操作授權(quán)mysql?-u?root?-p????????????#輸入密碼

mysql>?grant?replication?slave?on?*.*?to?'slave'@'192.168.204.139'?identified?by?'123456';

mysql>?flush?privileges;

2.1.2數(shù)據(jù)傳遞給MySQL-02mysql?-u?root?-p????????????#輸入密碼

flush?tables?with?read?lock;????????#鎖表操作

mysql>?show?master?status;

+------------------+----------+--------------+------------------+-------------------+

|?File?????????????|?Position?|?Binlog_Do_DB?|?Binlog_Ignore_DB?|?Executed_Gtid_Set?|

+------------------+----------+--------------+------------------+-------------------+

|?mysql-bin.000012?|??????120?|??????????????|??????????????????|???????????????????|

+------------------+----------+--------------+------------------+-------------------+

1?row?in?set?(0.00?sec)

mysqldump?-u?root?-p?--all-databases?>?mysqldump.sql

mysql?-u?root?-p

mysql>?unlock?tables;

mysql>?quit

scp?myqsldump.sql?192.168.204.139:/root/

2.2在MySQL-02上操作

2.2.1恢復(fù)數(shù)據(jù)庫數(shù)據(jù)mysql?-u?root?-p?

2.2.2建立主從同步mysql?-u?root?-p

mysql>?change?master?to?master_host='192.168.204.138',master_user='slave',master_password='123456',master_log_file='mysql-bin.000012',master_log_pos=120,master_port=3306;

start?slave;

檢查是否成功show?slave?status\G;Slave_IO_Running:?Yes

Slave_SQL_Running:?Yes

都為Yes表示同步成功。

注:master_port=3306,默認(rèn)時(shí)不需要加,但是修改過端口的則需要該選項(xiàng)

3.搭建互為主從

3.1在MySQl-01上操作

3.1.1用戶授權(quán)mysql?-u?root?-p123456

mysql>?grant?replication?slave?on?*.*?to?'slave'@'192.168.204.138'?identified?by?'123456';?//建立權(quán)限

mysql>?flush?privileges;

注:因?yàn)樽龅氖撬袔斓闹鲝?#xff0c;所以在MySQL-01上的操作會(huì)同步到MySQL-02上

注2:假如你是線上環(huán)境,主庫在不斷的寫數(shù)據(jù),建議鎖一下表,最好找個(gè)夜深人靜的時(shí)候做吧

3.2在MySQL-02上的操作mysql?-u?root?-p

mysql>?show?master?status\G;

+------------------+----------+--------------+------------------+-------------------+

|?File?????????????|?Position?|?Binlog_Do_DB?|?Binlog_Ignore_DB?|?Executed_Gtid_Set?|

+------------------+----------+--------------+------------------+-------------------+

|?mysql-bin.000009?|??????120?|??????????????|??????????????????|???????????????????|

+------------------+----------+--------------+------------------+-------------------+

1?row?in?set?(0.00?sec)

3.1.2在MySQL-01上操作授權(quán)mysql>?change?master?to?master_host='192.168.204.138',master_user='slave',master_password='123456',master_log_file='mysql-bin.000009',master_log_pos=120;

mysql>?start?slave;

檢查是否成功show?slave?status\G;

Slave_IO_Running:?Yes

Slave_SQL_Running:?Yes

表示成功。

此,mysql的雙向主從同步已完成

4.keepalived的搭建

4.1在兩臺(tái)服務(wù)器依次做以下操作

a.安裝keepalivedwget?http://www.keepalived.org/software/keepalived-1.2.15.tar.gz

tar?zxvf?keepalived-1.2.15.tar.gz

cd?keepalived-1.2.15

./configure?--prefix=/usr/local/keepalived

make?&&?make?install

假如編譯過程出現(xiàn)錯(cuò)誤,請(qǐng)安裝 gcc,openssl,openssl-devel

b.復(fù)制相關(guān)文件cp?/usr/local/keepalived/etc/rc.d/init.d/keepalived??/etc/init.d/

cp?/usr/local/keepalived/etc/sysconfig/keepalived?/etc/sysconfig/

mkdir?/etc/keepalived/

cp?/usr/local/keepalived/etc/keepalived/keepalived.conf?/etc/keepalived/

cp?/usr/local/keepalived/sbin/keepalived?/usr/sbin/

4.2修改配置文件

請(qǐng)先將/etc/keepalived/keepalived.conf文件清空

4.2.1在MySQL-01上操作

將一下內(nèi)容復(fù)制進(jìn)去!?Configuration?File?for?keepalived

global_defs?{

notification_email?{

sunyuansheng7@gmail.com

}

notification_email_from?sunyuansheng7@gmail.com

smtp_server?127.0.0.1

smtp_connect_timeout?30

router_id?MySQL-ha

}

vrrp_instance?VI_1?{

state?master

interface?eth0

virtual_router_id?51

priority?100

advert_int?1

nopreempt

authentication?{

auth_type?PASS

auth_pass?1111

}

virtual_ipaddress?{

192.168.204.222

}

}

virtual_server?192.168.204.222?3306?{

delay_loop?6

lb_algo?wrr

lb_kind?DR

persistence_timeout?50

protocol?TCP

real_server?192.168.204.138?3306?{

weight?3

notify_down?/var/lib/mysql/killkeepalived.sh

TCP_CHECK?{

connect_timeout?10

nb_get_retry?3

delay_before_retry?3

connect_port?3306

}

}

}

4.2.2在MySQL-02上操作

vim /etc/keepalived/keepalived.conf!?Configuration?File?for?keepalived

global_defs?{

notification_email?{

sunyuansheng7@gmail.com

}

notification_email_from?sunyuansheng7@gmail.com

smtp_server?127.0.0.1

smtp_connect_timeout?30

router_id?MySQL-ha

}

vrrp_instance?VI_1?{

state?backup

interface?eth0

virtual_router_id?51

priority?100

advert_int?1

nopreempt

authentication?{

auth_type?PASS

auth_pass?1111

}

virtual_ipaddress?{

192.168.204.222

}

}

virtual_server?192.168.204.222?3306?{

delay_loop?6

lb_algo?wrr

lb_kind?DR

persistence_timeout?50

protocol?TCP

real_server?192.168.204.139?3306?{

weight?3

notify_down?/var/lib/mysql/killkeepalived.sh

TCP_CHECK?{

connect_timeout?10

nb_get_retry?3

delay_before_retry?3

connect_port?3306

}

}

}

4.3在兩臺(tái)服務(wù)器做以下操作vim?/var/lib/mysql/killkeepalived.sh

#!/bin/sh

pkill?keepalived

chmod?+x?/var/lib/mysql/killkeepalived.sh

4.4此時(shí)先不要啟動(dòng)keepalived,因?yàn)槲覀円^察日志

5.測(cè)試是否可用

創(chuàng)建一個(gè)新的用戶mysql>?grant?all?privileges?on?*.*?to?'test'@'%'?identified?by?'123456';

mysql>?flush?privileges;

5.1在MySQL-01上多開一個(gè)終端,tailf /var/log/messages,然后再另一個(gè)終端啟動(dòng)keepalived服務(wù)service keepalived start。日志信息如下

5.2在MySQL-02同樣打開一個(gè)新的終端查看日志信息,然后啟動(dòng)keepalived

5.3在MySQL-01上手動(dòng)停掉MySQL服務(wù)。同時(shí)得到日志信息

? ?連接3306端口失敗,準(zhǔn)備移除虛擬ip,然后停掉keepalived服務(wù)。最后虛擬ip地址移除。

MySQL-02日志信息沒啥變化!話說兩邊啟動(dòng)keepalived的日志信息差不多是一樣的。

此時(shí)可以使用連接MySQL的工具測(cè)試一下,虛擬ip地址還是可用的。

5.4假設(shè)MySQL-01恢復(fù)此時(shí)還應(yīng)該啟動(dòng)keepalived服務(wù)。

總結(jié)

以上是生活随笔為你收集整理的mysql 主从 keepalived_MySQL之双向主从加keepalived高可用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。