真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MySQL高可用架構(gòu):mysql+keepalived實(shí)現(xiàn)-創(chuàng)新互聯(lián)

系統(tǒng)環(huán)境及架構(gòu)

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到雙陽(yáng)網(wǎng)站設(shè)計(jì)與雙陽(yáng)網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、申請(qǐng)域名、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋雙陽(yáng)地區(qū)。
#主機(jī)名		???系統(tǒng)版本	???????mysql版本	?ip地址
mysqlMaster	???centos7.4	???????mysql5.7	???????192.168.1.42
mysqlSlave	???centos7.4	???????mysql5.7	???????192.168.1.43
#vip:192.168.1.41

MySQL高可用架構(gòu):mysql+keepalived實(shí)現(xiàn)

在master和slave上分別進(jìn)行數(shù)據(jù)庫(kù)的安裝

yum?install?epel*??-y?&&?yum?clean?all?&&?yum?makecache?
rpm?-Uvh?http://repo.mysql.com/mysql57-community-release-el7.rpm
yum?clean?all?&&?yum?makecache
yum?install?gcc?gcc-c++?openssl-devel?mysql?mysql-server?mysql-devel?-y

創(chuàng)建數(shù)據(jù)庫(kù)文件存放路徑

mkdir?/data/mysql?-p
chown?-R?mysql:mysql?/data/mysql

配置mysql配置文件

#在mysqlMaster上配置mysql配置文件

vi?/etc/my.cnf
[mysqld]
server-id?=?1		#全局唯一,每臺(tái)都不能一樣
log-bin?=?mysql-bin	#log-bin表示開(kāi)啟二進(jìn)制日志記錄,mysql-bin表示日志文件的命名格式,會(huì)生成mysql-bin.0001?等等
relay-log?=?mysql-relay-bin	#指定中繼日志格式(拉取主mysql日志后,在從庫(kù)上生成的日志)
replicate-wild-ignore-table=mysql.%	#指定那些庫(kù)或則表不進(jìn)行同步,mysql是庫(kù)名,.%表示下面所有的表,mysql.user??表示不同不mysql庫(kù)下的user表
replicate-wild-ignore-table=test.%
replicate-wild-ignore-table=information_schema.%
#replicate-wild-do-table=boke.%		#表示同步那個(gè)庫(kù)
#注意:不要在主庫(kù)上使用binlog-do-db?或 binlog-ignore-db選項(xiàng)
#也不要在從庫(kù)上使用 replicate-do-db?或 replicate-ignore-db?選項(xiàng),因?yàn)檫@有可能產(chǎn)生跨庫(kù)更新失敗的問(wèn)題.推薦從庫(kù)上使用 replicate_wild_do_table?和 replicate_wild_ignore_table?這兩個(gè)選項(xiàng)來(lái)解決復(fù)制過(guò)濾問(wèn)題
datadir=/data/mysql
socket=/data/mysql/mysql.sock
user=mysql
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
character-set-server=utf8
[mysql]
socket=/data/mysql/mysql.sock
default-character-set=utf8
[client]
socket=/data/mysql/mysql.sock
default-character-set=utf8
user=root
password=NCYD-tianyu@0791
#若是不寫(xiě)上這個(gè)字段,在本機(jī)用命令進(jìn)入mysql會(huì)報(bào)錯(cuò),提示默認(rèn)路徑/var/lib/mysql/mysql.sock找不到

在mysqlSlave上配置mysql配置文件

vi?/etc/my.cnf
[mysqld]
server-id?=?2
log-bin?=?mysql-bin
relay-log?=?mysql-relay-bin
replicate-wild-ignore-table=mysql.%
replicate-wild-ignore-table=test.%
replicate-wild-ignore-table=information_schema.%
datadir=/data/mysql
socket=/data/mysql/mysql.sock
user=mysql
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
character-set-server=utf8
[mysql]
socket=/data/mysql/mysql.sock
default-character-set=utf8
[client]
socket=/data/mysql/mysql.sock
default-character-set=utf8
user=root
password=NCYD-tianyu@0791

#若是不寫(xiě)上這個(gè)字段,在本機(jī)用?命令?進(jìn)入mysql會(huì)報(bào)錯(cuò),提示默認(rèn)路徑/var/lib/mysql/mysql.sock找不到,先初始化數(shù)據(jù)庫(kù)(需要進(jìn)行初始化在/data/mysql目錄里生成必要的信息)

#mysql5.7.7以后的初始化方法
mysqld?--initialize?--user=mysql?--datadir=/data/mysql
#mysql5.7.7以前的初始化方法
mysql_install_db?--user=mysql?--datadir=/data/mysql
分別啟動(dòng)主從數(shù)據(jù)庫(kù)
#在centos7里面,必須先關(guān)閉selinux,否在無(wú)法啟動(dòng)mysqld
systemctl?start?mysqld
分別為主從mysql做安全加固
#查到上一步,首次啟動(dòng)mysql,系統(tǒng)自動(dòng)生成的密碼( cat?/var/log/mysqld.log?|grep?pass )
mysql_secure_installation	#使用該命令更改隨機(jī)root密碼(修改為 NCYD-tianyu@0791?。?手動(dòng)同步數(shù)據(jù)(假如現(xiàn)在的環(huán)境,主上已經(jīng)有數(shù)據(jù)了,從是新的)
1:在主上數(shù)據(jù)庫(kù)中創(chuàng)建用于復(fù)制的用戶,并授權(quán)
mysql>?GRANT?REPLICATION?SLAVE?ON?*.*?to?'tongbu'@'192.168.1.43'?identified?by?'123456789';
2:在主mysql上先鎖表(使其所有表變成只讀狀態(tài))
mysql>?flush?tables?with?read?lock;		#不要退出終端,否在這個(gè)鎖就失效了
3:再開(kāi)啟另一個(gè)命令行終端,使用myqldump等工具將數(shù)據(jù)導(dǎo)出(或則直接打包存儲(chǔ)mysql數(shù)據(jù)的目錄,并發(fā)送到從機(jī)上)
4:將導(dǎo)出數(shù)據(jù)復(fù)制到從機(jī)上,并創(chuàng)建新庫(kù)并導(dǎo)入數(shù)據(jù)
互相置從,互相置主(以達(dá)到雙主模式)

在mysqlMaster上將mysqlSlave設(shè)置為自己的主角色服務(wù)器

mysql>?show?master?status;	#查看mysqlSlave的狀態(tài)(記錄File名字,和Position)
change?master?to
master_host?=?'192.168.1.43',
master_user?=?'tongbu',
master_password?=?'123456789',
master_log_file?=?'mysql-bin.000002',
master_log_pos?=?1006;
mysql>?start?slave;??????#啟動(dòng)slave端的復(fù)制進(jìn)程(某些版本是:slave?start;?)
mysql>?show?slave?status\G??#查看slaves端的I/O進(jìn)程,與SQL進(jìn)程

在從上將mysqlMaster設(shè)置為自己的主角色服務(wù)器

mysql>?show?master?status;	#查看mysqlMaster的狀態(tài)(記錄File名字,和Position)
change?master?to
master_host?=?'192.168.1.42',
master_user?=?'tongbu',
master_password?=?'123456789',
master_log_file?=?'mysql-bin.000002',
master_log_pos?=?1006;
mysql>?start?slave;??????#啟動(dòng)slave端的復(fù)制進(jìn)程
mysql>?show?slave?status\G??#查看slaves端的I/O進(jìn)程,與SQL進(jìn)程

驗(yàn)證是否同步

1:第一驗(yàn)證在myssqlMaster上創(chuàng)建庫(kù),mysqlSlave上是否存在

2:第二驗(yàn)證在mysqlSlave上創(chuàng)建庫(kù),mysqlMaster上是否存在

鄭州不孕不育醫(yī)院:http://jbk.39.net/yiyuanzaixian/zztjyy/

安裝keepalived實(shí)現(xiàn)VIP切換,達(dá)到高可用

yum?install?keepalived?-y
#在mysqlMaster和mysqlSlave上都創(chuàng)建檢查mysql的檢查腳本,并賦予執(zhí)行權(quán)限
touch?/etc/keepalived/mysql_check.sh
chmod?+x?/etc/keepalived/mysql_check.sh
vi?/etc/keepalived/mysql_check.sh
#!/bin/bash
#slave_is=(?$(mysql?-uroot?-pNCYD-tianyu@0791?-e?"show?slave?status\G"?|?grep?"Slave_.*_Running"?|?awk?'{print?$2}')?) 在新版本的myql中,直接將密碼寫(xiě)在命令行,會(huì)進(jìn)行安全提示,解決辦法是將其寫(xiě)在mysql的配置文件里的?[client]?字段里,寫(xiě)法見(jiàn)上面mysql的配置文件
slave_is=(?$(mysql?-e?"show?slave?status\G"?|?grep?"Slave_.*_Running"?|?awk?'{print?$2}')?)
if?[?"${slave_is[0]}"?=?"Yes"?-a?"$slave_is[1]"?=?"Yes"]
	then
	exit?0
else
	exit?1
fi

#注意,keepalived檢查?腳本?vrrp_script,只認(rèn)兩個(gè)返回值,0表示正常,非0表示不正常(這在寫(xiě)腳本是要注意),不正常就要做相關(guān)的切換

配置keepalived,以實(shí)現(xiàn)高可用

vi?/etc/keepalived/keepalived.conf
global_defs?{
???notification_email?{
?????acassen@firewall.loc
?????failover@firewall.loc
?????sysadmin@firewall.loc
???}
???notification_email_from?Alexandre.Cassen@firewall.loc
???smtp_server?192.168.200.1
???smtp_connect_timeout?30
???router_id?LVS_DEVEL
???vrrp_skip_check_adv_addr
???#vrrp_strict		#注意:當(dāng)你發(fā)現(xiàn)無(wú)法ping通虛擬VIP時(shí),建議將此行注釋掉
???vrrp_garp_interval?0
???vrrp_gna_interval?0
}
vrrp_script?mysql_check?{
	script?"/etc/keepalived/mysql_check.sh"
	#這個(gè)腳本,若是發(fā)現(xiàn)不執(zhí)行,可以檢查他的權(quán)限,777是不可以的,日志提示不安全,可以直接chmod?+x?/etc/keepalived/mysql_check.sh?就行
	#script?"shutdown?-r?now"	#或者,直接用命令進(jìn)行調(diào)試
	interval?2
	weight?2
}
vrrp_instance?VI_1?{
????state?MASTER	#mysqlMaster上是MASTER;mysqlSlave上是BACKUP
????interface?ens192
????virtual_router_id?52
????priority?100	#mysqlMaster上是100;mysqlSlave上是90
????advert_int?1
????nopreempt		#配置VIP(注意:故障切換搶占模式,盡量關(guān)閉,默認(rèn)是開(kāi)啟的,這個(gè)參數(shù)只需要在高優(yōu)先級(jí)上設(shè)置即可)
????authentication?{
????????auth_type?PASS
????????auth_pass?1111
????}
track_script?{	#調(diào)用上面定義檢查mfsmaster的腳本
????????mysql_check
????}
????virtual_ipaddress?{
????????192.168.1.41/24?dev?ens192
????}
}

啟動(dòng)keepalived

systemctl?start?keepalived

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


新聞標(biāo)題:MySQL高可用架構(gòu):mysql+keepalived實(shí)現(xiàn)-創(chuàng)新互聯(lián)
URL標(biāo)題:http://weahome.cn/article/gppoi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部