<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
我們通常說的雙機熱備是指兩臺機器都在執行,但並不是兩臺機器都同時在提供服務。當提供服務的一臺出現故障的時候,另外一臺會馬上自動接管並且提供服務,而且切換的時間非常短
MySQL雙主複製,即互為Master-Slave(預設只使用一臺MasterA負責資料寫入,另一臺MasterB備用),可以實現資料庫伺服器的熱備,但是一臺Master宕機後不能實現動態切換。
使用Keepalived,可以通過虛擬IP,實現雙主對外的統一介面以及自動檢查、失敗切換機制,從而實現MySQL資料庫的高可用方案。
把mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz上傳到/usr/local/src/
1、mysql安裝
cd /usr/local/src/ tar -zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz mkdir -p /usr/local/mysql/ mv mysql-5.7.28-linux-glibc2.12-x86_64 /usr/local/mysql/mysql-5.7.28
2、建立mysql使用者組和使用者
cd /usr/local groupadd mysql useradd -r -g mysql -s /bin/false mysql chown -R mysql:mysql mysql
3、初始化資料
cd /usr/local/mysql/mysql-5.7.28 bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql-5.7.28/ --datadir=/data1/mysql/data --lc_messages_dir=/usr/local/mysql/mysql-5.7.28/share --lc_messages=en_US bin/mysql_ssl_rsa_setup --datadir=/data1/mysql/data
4、修改設定
vi /etc/my.cnf basedir=/usr/local/mysql/mysql-5.7.28 datadir=/data1/mysql/data
5、設定環境變數
#編輯環境變數 .bash_profile表示當前使用者個人設定 只對當前使用者生效 vi ~/.bash_profile #將mysql的bin目錄設定到環境變數中 PATH=$PATH:$HOME/bin:/usr/local/mysql/mysql-5.7.28/bin export PATH #使設定修改後立即生效 source ~/.bash_profile
6、修改密碼、設定遠端存取和安全啟動
#啟動前先設定免密登入 vi /etc/my.cnf #新增如下設定並儲存 跳過許可權驗證 skip-grant-tables=1 #安全啟動 cd /usr/local/mysql/mysql-5.7.28/bin ./mysqld_safe --user=mysql & #修改密碼 #進入mysql mysql use mysql update user set authentication_string=password("123456") where user="root"; #重新整理許可權表 flush privileges; #設定遠端存取 use mysql #允許所有機器存取root使用者 %代表所有機器 update user set host='%' where user='root'; #授權所有機器的root使用者擁有所有資料庫的所有許可權 遠端存取密碼root %代表所有機器 grant all privileges on *.* to root@'%' identified by 'root'; #重新整理許可權表 flush privileges; #退出mysql exit #安全關閉 ./mysqladmin -uroot -p shutdown #刪除免密登入設定 vi /etc/my.cnf #刪除skip-grant-tables=1並儲存 #安全啟動 ./mysqld_safe --user=mysql &
1、建立主從同步replication使用者
2、授權
192.168.0.101
#授權IP192.168.0.102的從資料庫replication使用者擁有所有資料庫的同步許可權 遠端存取密碼replication grant replication slave on *.* to 'replication'@'192.168.0.102' identified by 'replication'; #重新整理許可權表 flush privileges;
192.168.0.102
#授權IP192.168.0.101的從資料庫replication使用者擁有所有資料庫的同步許可權 遠端存取密碼replication grant replication slave on *.* to 'replication'@'192.168.0.101' identified by 'replication'; #重新整理許可權表 flush privileges;
3、新增組態檔
[mysqld] basedir=/usr/local/mysql/mysql-5.7.28 datadir=/data1/mysql/data server-id = 101 skip-external-locking log_bin = mysql-binlog binlog_do_db = sample binlog-ignore-db = mysql binlog-ignore-db = performance_schema binlog-ignore-db = information_schema binlog_group_commit_sync_delay = 100000 # 單位微妙 binlog_group_commit_sync_no_delay_count = 20 # 單位每組事物數量 #設定複製型別 slave-parallel-type=LOGICAL_CLOCK #設定並行數量 slave-parallel-workers=4 #主主需要加的部分 replicate-do-db = sample log-slave-updates=true #sync_binlog=1 auto_increment_offset=1 auto_increment_increment=2 innodb_buffer_pool_size = 12G innodb_buffer_pool_instances = 8 innodb_buffer_pool_chunk_size = 128M innodb_log_file_size = 256M innodb_log_buffer_size = 32M innodb_flush_method = O_DIRECT innodb_lock_wait_timeout = 120 slow_query_log = ON slow_query_log_file = /usr/local/mysql/log/slow.log long_query_time = 5 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION secure_file_priv=/usr/local/mysqlcsvfiles/ expire_logs_days=7 max_binlog_size=1024M !includedir /etc/my.cnf.d
4、新增之後
mkdir -p /usr/local/mysql/log mkdir -p /usr/local/mysqlcsvfiles
5、安全關閉
./mysqladmin -uroot -p shutdown
6、安全啟動
./mysqld_safe --user=mysql &
7、進入mysql執行
#進入mysql執行 show master statusG; #分別記錄主的binlog位置,在101的角度上102為主,在102的角度上,101為主 File:mysql-bin.000001 Position: 154 #設定同步關係(兩個主都要設定) #其中master_log_file和master_log_pos要登入到對方機器執行show master statusG;去檢視 stop slave; (在192.168.0.101) change master to master_host='192.168.0.102',master_user='replication',master_password='replication',master_log_file='mysql-bin.000001',master_log_pos=154; (在192.168.0.102) change master to master_host='192.168.0.101',master_user='replication',master_password='replication',master_log_file='mysql-bin.000001',master_log_pos=154; #分別啟動slave start slave;
1、安裝編譯依賴包
yum install -y gcc openssl-devel libnl libnl-devel libnfnetlink-devel
2、安裝Keepalived
#解壓keepalived壓縮包放到/usr/local/並重新命名為keepalived cd /usr/local/src tar -zxvf keepalived-2.0.7.tar.gz mv keepalived-2.0.7 /usr/local/keepalived #設定keepalived 得到一個Makefile的資料夾 #--prefix:keepalived安裝目錄 #--sysconf:keepalived的核心組態檔,必須要在/etc目錄下面,改為其他位置會導致啟動不了,不設定在該目錄下的話,啟動keepalived時紀錄檔檔案裡面會報錯,顯示找不到/etc這個資料夾 cd /usr/local/keepalived ./configure --prefix=/usr/local/keepalived/ --sysconf /etc #編譯和安裝keepalived make && make install #建立keepalived軟連結 /usr/sbin/如果存在keepalived就先刪除 ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/ #複製keepalived指令碼檔案到/etc/init.d/目錄下 cd keepalived cp /usr/local/keepalived/etc/init.d/keepalived /etc/init.d/ #設定Keepalived開機自啟動 chkconfig --add keepalived chkconfig keepalived on #啟動keepalived service keepalived start
1、編輯keepalived組態檔
vi /etc/keepalived/keepalived.conf
2、主伺服器新增對應組態檔
global_defs { router_id LVS_LEVEL1 #主伺服器名稱 } vrrp_script check_run { script "/etc/keepalived/mysql_check.sh" interval 5 #5秒執行一次指令碼 } vrrp_instance VI_1 { state MASTER #主伺服器 interface eth0 #承載VIP地址到物理介面 virtual_router_id 51 #虛擬路由器ID號,每個熱播組保持一致 priority 100 #優先順序,數值越大優先順序越高 advert_int 1 #檢查間隔,預設為1s authentication { #認證資訊,每個熱播組保持一致 auth_type PASS #認證型別 auth_pass 1111 #密碼字串 } virtual_ipaddress { 192.168.0.144 #VIP地址(內網地址) } track_script { check_run } }
3、備份伺服器新增對應組態檔
global_defs { router_id LVS_LEVEL2 #備份伺服器名稱 } vrrp_script check_run { script "/etc/keepalived/mysql_check.sh" interval 5 #5秒執行一次指令碼 } vrrp_instance VI_1 { state BACKUP #備份伺服器 interface eth0 #承載VIP地址到物理介面 virtual_router_id 51 #虛擬路由器ID號,每個熱播組保持一致 priority 50 #優先順序,數值越大優先順序越高 advert_int 1 #檢查間隔,預設為1s authentication { #認證資訊,每個熱播組保持一致 auth_type PASS #認證型別 auth_pass 1111 #密碼字串 } virtual_ipaddress { 192.168.0.144 #VIP地址(和主伺服器設定一樣) } track_script { check_run } }
附mysql_check.sh
#!/bin/bash /usr/bin/mysql -uroot -p'你自己的資料庫密碼' -e "show status" &>/dev/null if [ $? -ne 0 ] ;then systemctl stop keepalived fi
chmod +x /etc/keepalived/mysql_check.sh
4、重啟keepalived
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45